数据结构与算法复习资料..docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 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)

stzs + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档