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

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

《算法与数据结构》复习重点 第2章 程序性能 给出一个程序段,会写出该程序段的时间复杂度; 第3章 线性表 顺序存储结构的特点 表中元素可以随机访问; 非表尾的插入和删除操作需要移动元素; 表空间无法动态扩充,需预先按最大空间分配,存储空间利用率低; 相邻元素的物理位置相邻 无需为维护表中元素的逻辑关系增加额外的存储空间 若用数组实现表,设表元素总数为n,在第k个元素后插入一个新元素,需要后移的元素数目为n-k。设在表的任何合法位置上插入元素的概率均等,则插入操作所需要的元素移动平均次数为n/2。 若用数组实现表,设表元素总数为n,删除第k个元素,需要前移的元素数目为n-k。设删除表的任何元素的概率均等,则删除操作所需要的元素移动平均次数为(n-1)/2。 链式存储结构的特点 表元素分散存放,物理位置不一定相邻; 每个结点包含指向下一结点的指针域; 只能顺序搜索,不能随机访问; 插入和删除操作只需要通过修改指针实现,效率较高 不需为表预留空间,存储空间利用率高,表容量可动态扩充 每个结点中的指针域需占用额外空间 在带哨兵结点的单循环链表中,设置尾指针last指向链尾结点,每个结点中的后继指针域为next,则判断表空的表达式为last-next==last;在带哨兵结点的双循环链表中,设置指针header指向哨兵结点,每个结点中的后继指针域为next,前驱指针域为prior,则判断表空的表达式为header-next==header或header-prior==header。 在带哨兵结点的单链表的插入和删除操作中,链指针的修改 理解静态链表 静态链表中的指针域又称为游标或模拟指针,存放下一元素在数组中的下标 多条静态链表可共用一个数组空间 在数组空间中,静态链表中的元素可以分散存放,即相邻元素的下标不一定相邻 静态链表的扩充受到数组空间容量的限制 第4章 栈 栈的操作原则为先进后出或后进先出,插入和删除操作均在栈顶方向上进行。 用数组实现栈的入栈和出栈函数; 用数组实现栈的优缺点: 栈上的基本操作都能在常量时间内完成,效率较高; 为避免栈发生溢出,通常需要预置一个较大栈空间,存储空间利用率较低; 为提高空间利用率,可让多栈共享数组空间; 用链表实现栈的特点:链栈空间可以动态扩充 第5章 队列 队列的操作原则是先进先出或后进后出,插入操作在队尾进行,删除操作在队头进行 若用循环数组实现队列,设置front指向队头元素前一单元,rear指向队尾元素,并采用总剩一个单元不利用的方法区分满空状态,则当front和rear满足什么关系时队列为空,满足什么关系时队列为满? 用循环数组实现队列的入队和出队函数。 第6章 树 树的基本概念,包括树的度、叶结点或终端结点、分支结点、内部结点、兄弟、堂兄弟、祖先、子孙、树的高度、有序树、无序树。 树的表示法 父结点数组表示法可以快速找到结点的父结点,但查询儿子结点和兄弟结点可能要遍历整个数组; 在儿子表示法中,若采用定长结点的多重链表结构,则表示一棵有n个结点度为d的树必有nd-(n-1)个空链域 儿子链表表示法适合于查找子结点,但不适合于查找父结点和兄弟结点 带双亲的儿子链表表示法适合于查找子结点、父结点和兄弟结点 左儿子右兄弟表示法方便查找子结点和兄弟结点,但不方便查找父结点 给出一棵树,会用父结点数组表示法、儿子链表表示法、左儿子右兄弟表示法表示它。 二叉树的概念 二叉树是有序树 度为2的树不一定是二叉树 度为2的有序树不一定是二叉树 子树有严格左右次序之分,且度≤2的树是二叉树 具有3个结点的树有5种形态,具有3个结点的二叉树有3种形态。 满二叉树的特点: 所有叶结点都集中在最底层 不存在度为1的结点 每一层上的结点数均达到最大值 所有分支结点都存在左子树和右子树 例题: ① 高度为8的满二叉树的结点总数为 255 。 完全二叉树的特点: 叶结点只可能在层次最大的两层上出现 最下层的叶结点一定集中在该层的左端 度小于2的结点只可能位于最下两层 除最下层外,其余各层均满 度为1的结点只可能出现在倒数第二层 对任一结点,若其右分支下的子孙最大层次为s,则其左分支下的子孙的最大层次必为s或s+1 二叉树的性质 具有n个结点的非空二叉树共有n-1个分支 非空二叉树的第i层上至多有2i-1个结点(i≥1)log2n +1。 具有n个结点的二叉树的最小高度为 log2n +1,最大高度为n。 若对具有n个结点的完全二叉树按照层次从上到下,每层从左到右的顺序进行编号,则编号为i的结点具有下列性质: ⅰ如果i=1,则结点i是二叉树的根,无父结点;否则父结点是 i/2 ⅱ如果2in,则结点i无左孩子(结点i为叶结点);否则左孩子编号为2i ⅲ如果2i+1n,则结点i无右孩子;否

文档评论(0)

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

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

1亿VIP精品文档

相关文档