数据结构复习参考.docx
- 文档编号:4762306
- 上传时间:2022-12-08
- 格式:DOCX
- 页数:12
- 大小:226.83KB
数据结构复习参考.docx
《数据结构复习参考.docx》由会员分享,可在线阅读,更多相关《数据结构复习参考.docx(12页珍藏版)》请在冰豆网上搜索。
数据结构复习参考
一、填空题
1.数据结构基本概念:
研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和操作等的一门课程。
(关系、操作两方面缺一不可)
2.双向链表:
考点:
插入和删除
s
插入s前后指针变化:
p->prior->next=s;s->prior=p->prior;
s->next=p;p->prior=s;(前两个和后两个顺序不能颠倒)
P
删除p前后指针变化:
p->prior->next=p->next;
p->next->prior=p->prior;
3.串形参列表(加粗的作为参考的重点)
StrAssign(&T,chars):
生成一个其值等于chars的串T
StrCopy(&T,S):
由串S复制得到串T
StrEmpty(S):
判断S是否为空
StrCompare(S,T):
比较串S和T
StrLength(S):
返回串S的长度
ClearString(&S):
将串S清空
Concat(&T,S1,S2):
连接串S1和S2,生成新串T
SubString(&Sub,S,pos,len):
返回串S中第pos个字符起长度为len的子串
Index(S,T,pos):
返回主串S中第pos个字符之后子串T第一次出现的位置
Replace(&S,T,V):
用V替换主串S中出现的所有与T相等的不重叠的子串
StrInsert(&S,pos,T):
在串S的第pos个字符之前插入串T
StrDelete(&S,pos,len):
从串S中删除第pos个字符起长度为len的子串
DestroyString(&S):
销毁串S
可能题型:
填写返回串S中第pos个字符起长度为len的子串sub的形参列表:
SubString(&Sub,S,pos,len)
4.无
5.完全二叉树
1).在二叉树的第i层上至多有2i-1个结点(i≥1)
2)、深度为k的二叉树至多有2k-1个结点(k≥1)
3).对任何一棵二叉树T,如果其终端结点数为n0,度为2的结点数为n2,则n0=n2+1。
4)、具有n个结点的完全二叉树的深度为log2n+1。
5)、对具有n个结点的完全二叉树按层序编号,则对任一结点i有:
(1)若i=1,则结点i是树根;若i>1,则结点i/2是其双亲
(2)若2i>n,则结点i无左孩子,否则结点2i是其左孩子
(3)若2i+1>n,则结点i无右孩子,否则结点2i+1是其右孩子
1.若二叉树用二叉链表作存贮结构,则在n个结点的二叉树链表中只有n-1个非空指针域。
2.一棵深度为6的满二叉树有31个分支结点和32个叶子。
3.一棵含有n个结点的k叉树,可能达到的最大深度为n,最小深度为此树是完全K叉树时。
4.设一棵完全二叉树具有1000个结点,则此完全二叉树有500个叶子结点,有499个度为2的结点,
有个结点只有非空左子树,有0个结点只有非空右子树。
5.深度为的k完全二叉树至少有2k-1个结点;对于深度为k的满二叉树,如果从上到下、从左到右给结点编号(从1开始),则最大的叶子结点编号是2k-1。
6.前中后缀的转化
7.模式匹配
8.排序:
考查特点
希尔(shell)排序:
不稳定的排序方法
空间复杂度为O
(1)
快速排序:
平均时间复杂度低,适用于完全随机的序列。
不稳定性排序;空间效率低;
结点顺序不好(有序)则效率低(初始记录序列按关键字有序时,快速排序将蜕化为冒泡排序)。
堆排序方法特点:
时间复杂度O(nlogn);
空间复杂度O
(1);
不稳定排序;
运行时间主要耗费在建初始堆和调整堆上,适用于大批量数据的部分排序(如1000个数据取5个关键字最大的数。
)。
归并排序特点:
时间复杂度O(nlog2n)
空间复杂度O(n)
稳定排序
适用于处理大批量数据的排序
9.图的最短路径
求某个源点到其余某个顶点的最短路径:
找所有路径中权值之和最小的路径即可。
例:
求从v0到v3的最短路径是:
v0,v4,v3(因为v0,v2,v3路径的权值为60>50)
10.折半查找由判定树求查找次数和平均查找长度
二、选择题
1、顺序表、单链表的特点:
单链表便于插入和删除,不需要移动元素;存取指定序号元素要用顺序表。
(2009研) 若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用___A___存储方式最节省时间。
A.顺序表B.双链表C.带头结点的双循环链表D.单循环链表
2、栈的基本操作,重点是功能
InitStack(&S):
构造一个空栈S
DestroyStack(&S):
销毁已存在的栈S
ClearStack(&S):
将已存在的栈S清空
StackEmpty(S):
判断S是否为空栈
StackLength(S):
计算栈S的长度
GetTop(S,&e):
用e返回栈S的栈顶元素的值
Push(&S,e):
元素e入栈,作为新栈顶元素
Pop(&S,&e):
栈顶元素出栈,用e返回元素值
StackTraverse(S,visit()):
对S中的每个数据元素按从栈顶到栈底的顺序调用函数visit()
3、树与森林的转换
森林转化为二叉树:
(1)先将森林中的每一棵子树转化为二叉树;
(2)从第二棵树开始依次将第i棵树作为第i-1棵树的右子树。
例:
二叉树转化为森林:
(1)二叉树的根即为森林中第一棵树的根;
(2)从二叉树的根开始向右,遇到右子树,剪断其连接,使根及其左子树,成为第一棵树;如此往复处理其右子树。
(3)将每棵二叉树转换为树。
4.广义表
广义表LS非空时,第一个元素α1为LS的表头(Head);其余元素组成的表(α2,α3,…,αn)是LS的表尾(Tail)(注:
表尾一定是个广义表)。
所以,广义表C=(a,(b,c,d))的表头为a,表尾为:
((b,c,d)).
5.连通图和强连通图
连通图(ConnectedGraph):
无向图中任意两顶点都是连通的。
连通分量(ConnectedComponent):
无向图中的极大连通子图。
G3的连通分量(3个)
强连通图:
有向图中任意两顶点都是连通的。
强连通分量(ConnectedComponent):
有向图中的极大连通子图。
G1的强连通分量
6.循环队列基本操作:
判断循环队列空满的标志:
插入一个元素,Q.rear加1;删除一个元素,Q.front加1。
7.数据结构研究的内容:
物理结构(又称存储结构),逻辑结构和基本操作(或算法)。
8.拓扑排序
9.堆排序特点,同填空8
10.二叉树存储结构
//二叉树的顺序存储表示(一般用于完全二叉树)
#defineMAX_TREE_SIZE100
typedefTElemTypeSqBiTree[MAX_TREE_SIZE];
SqBiTreebt;
11.无
12.矩阵的压缩
13.折半查找
14.递归
递归定义包含两部分:
递归出口,函数执行体
15.链队列基本操作
附:
队列的基本操作如下:
InitQueue(&Q):
构造一个空队列Q
DestroyQueue(&Q):
销毁已存在的队列Q
ClearQueue(&Q):
将已存在的队列Q清空
QueueEmpty(Q):
判断Q是否为空队列
QueueLength(Q):
计算队列Q的长度
GetHead(Q,&e):
用e返回Q的队头元素的值
EnQueue(&Q,e):
插入元素e作为新队尾元素
DeQueue(&Q,&e):
删除Q的队头元素,用e返回元素值
QueueTraverse(Q,visit()):
对Q中的每个数据元素按从队头到队尾的顺序调用函数visit()
三、简答题
1.散列和查找
2.赫夫曼树
3.图的生成树
4.平衡二叉树
5.图的存储结构和最小生成树
四、算法(这个自己看课件吧~)
1.顺序表
2.树
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 复习 参考