- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构与算法复习资料.
★ 考试知识点★ 1
复习
★ 考试知识点★ 2
考试方案
题型:
选择题(15*2)
填空(10*2)
简答题(6*5)
程序设计题 (10*2)
★ 考试知识点★ 3
重点问题讲解
时间复杂度
对于循环程序,一般看有几重循环
例 int fun(int n) {
int i=1, s=1;
while(sn) s+=++i;//时间复杂度为O(n)
return i; }
★ 考试知识点★ 4
for(i=1;i=n;i=2*i)
printf(“i=%d\n”,i);//时间复杂度为O(log2(n))
解释:设循环执行x次
i的值 执行次数 i=2^0 1 i=2^1 2 i=2^2 3 ... ... i=2^x-1 x i=n 即为 2^(x-1) = n 解得 x= log2(n)-1 注意:是趋近!用大O
Int x=n;
Int y=0;
While(x=(y+1)*(y+1))//时间复杂度为O(n)
y++;
解释:设循环执行a次
y的值 执行次数 y=0 1 y=1 2 y=2 3 ... ... y=x a (y+1)(y+1)=x 即为 (a+1)(a+1)=x 解得 a = n^(1/2)-1 注意:是趋近!用大O
★ 考试知识点★ 5
线性表
顺序表
插入
删除
链表
表结构
typedef struct Node { DataType data; struct Node *next;}SLNode;
插入
删除
双向链表的插入、删除
★ 考试知识点★ 6
线性表
有序插入、排序
★ 考试知识点★ 7
栈和队列
栈的插入、删除操作
栈的进、出关系
如何判断队列满、空
★ 考试知识点★ 8
存在问题
设数组维数为M,则:
当front=-1,rear=M-1时,再有元素入队发生溢出——真溢出
当front?-1,rear=M-1时,再有元素入队发生溢出——假溢出
解决方案
队首固定,每次出队剩余元素向下移动——浪费时间
循环队列
基本思想:把队列设想成环形,让sq[0]接在sq[M-1]之后,若rear+1==M,则令rear=0;
实现:利用“模”运算
入队: rear=(rear+1)%M; sq[rear]=x;
出队: front=(front+1)%M; x=sq[front];
队满、队空判定条件
★ 考试知识点★ 9 解决方案:
1.另外设一个标志以区别队空、队满
2.少用一个元素空间:
队空:front==rear
队满:(rear+1)%M==front
★ 考试知识点★ 10 串、数组、递归
串的函数
StrCompare (S, T) StrLength (S) StrLength (S)Replace (S, T, V)
串的匹配算法
数组
数组中数据元素的位置
动态数组
矩阵的压缩
递归
递归的执行次数
★ 考试知识点★ 11 树
树的5个特性
树的遍历前序、中序、后序、层序(程序)
二叉排序树
树的转换
哈夫曼树
★ 考试知识点★ 12
问题、针对二叉树,回答下列问题:
具有n个结点的非空二叉树的最小深度是多少?最大深度是多少?
具有n个结点的完全二叉树中有多少个叶子结点?有多少个度为2的结点
具有n0个叶子结点的完全二叉树中共有多少个结点?
答案:(1)其最小深度是?log2(n+1)-1,最大深度是n-1。
(2)具有n个结点的完全二叉树中有n/2叶子结点,有n/2-1个度为2的结点。
(3)具有n0个叶子结点的完全二叉树中共有2n0 个结点或2n0-1个结点。
解析:(1) 树的深度代表树节点层次的最大值!
节点层次代表从根到该点所经过的路径数!
结点数 层次 总结点数 1 1 0 1 1 1 2 1 3 1 1 1 1 4 2 7 。。 。。 。。 。。 1 2^k k 2^(k+1)-1 (1)设节点数为n,层次数为k。故有 1+2+4+……2^k=n
利用等比数列求和公式 有,故n=log2(n+1)-1
设节点数为n=2^(k+1)-1,层次数为k
其中最下层叶结点数为叶结点2^k,即为└n/2┘
倒数第二层以上根结点个数为n-2^k=2^k-1,即为└n/2┘-1
★ 考试知识点★ 13
练习:
一棵完全二叉树有1000个结点,则它必有____个叶子结点,有____个度为2的结点,有____个结点只有非空左子树,
文档评论(0)