数据结构复习-随笔

数据结构(期末复习)

期末了!!!

顺序随机的

一、树

  • 对完全二叉树、满二叉树的结构(编号)有一个好的认识
  1. 二叉树的存储结构:孩子兄弟链表法、双亲表示法、孩子链表存储结构
  2. 二叉树的先序遍历和后序遍历序列正好相反,则二叉树一定满足的条件:高度等于其结点数
  3. 如果m是n的祖先,使用后序遍历的非递归过程更方便找到从m到n的路径
  4. 不用栈实现后序遍历的非递归:最佳方案,采用三叉链表表示
  5. 二叉树采用二叉链表存储结构,要交换所有分支结点的左右子树的位置,利用基于后序遍历的递归算法最合适。
  6. 二叉树线索化时,空的左指针指向前驱结点,空的右指针指向后继结点
  7. 哈夫曼树不一定是完全二叉树
  8. 一棵树的先根遍历和后根遍历,其中叶子结点出现的相对次序是相同的。
  9. 树的孩子兄弟表示法是一种二叉链表表示法。
  10. 可以不用栈实现基于中序线索二叉链表对二叉树进行中序遍历。(迭代实现)

二、图

  • 无向图( ) 有向图<>
  1. 有向图:强连通分量,强连通图; 无向图:连通分量,连通图

  2. 深度优先搜索:借助 ; 广度优先搜索:借助队列

  3. 可以借助拓扑排序判断有向图中是否存在回路(拓扑排序不能给 有向环状的结构排序)

  4. AOE网:任何一个关键活动的提前完成,整个工程的完成时间都会提前(❌)

  5. 使用有向图的十字链表,能非常方便地计算出任意一个顶点的出度和入度

  6. 十字链表:将逆邻接表中的边的信息存在邻接表中

  7. 邻接多重表:图的一个顶点用一个头结点表示(data , firstedge)

    ​ 图的一个边用一个“结点”表示(mark,vi,vj,vilink,vjlink)

  8. 对于一个无向图,进行一次广度优先搜索,能访问到图的所有顶点。(❌)

    ​ 前提:连通

  9. 边稀疏时,采用kruskal算法求最小生成树;边稠密时,采用prim算法

  10. 借助深度优先搜索求AOE网的关键路径。(❌)

三、查找

  1. 折半查找,在等概率的情况下查找成功的平均时间复杂度是O(logn)

  2. 二叉排序树的查找中,创建平衡二叉排序的目的是提高查找时间效率

  3. 哈希查找属于动态表上的查找法

  4. 对于二叉排序树,中序遍历的关键字序列一定是有序的。

  5. 有序的单链表上不适合折半查找

  6. 对于相同的关键字集,如果不同的初始序列,那么创建的二叉排序树也不相同。(❌)

    有可能相同,也有可能不同

  7. 线性探测法解决冲突时,同义词在散列表中不一定相邻

  8. 基于比较运算的查找算法,其时间复杂度的下界为O(logn)

  9. 分块查找时,数据的组织方式为数据分成若干块,每块(除最后一块外)中的数据个数需相同。(❌)

四、排序

  1. 基数排序是稳定的。

  2. 直接插入排序的时间效率与关键字的初始序列有直接关系。

  3. 表插入排序可以避免元素的移动,并且需要额外的空间。

  4. 假设待排序的表长为n,那么创建堆需要时间复杂度为O(n)

  5. 进行增序排序,需要使用大根堆(存疑)

  6. 如果关键字序列采用单链表存储,那么基数排序的过程可以避免大量数据移动

五、数组与广义表

  1. 不能对数据元素进行随机访问的物理结构是:三元组顺序表
  2. 对稀疏矩阵进行压缩的方法一般有两种:三元组顺序表和十字链表
  3. 数组的基本操作有存取、修改、检索和排序等,没有插入和删除操作
  4. 三元组顺序表或十字链表作为稀疏矩阵中的物理结构,对元素的访问形式只能是:顺序访问
  5. 广义表的表头不一定是广义表,表尾一定是广义表

六、栈和队列

  1. 注意栈的出栈的顺序
  2. 只有表头指针没有表尾指针的循环单链表不适合作为链栈的链表
  3. 循环队列,为了方便确定是满队列还是空队列,一般都会留一个位置不放元素
  4. 队列和栈都适合使用带表尾节点指针的循环单链表

七、线性表

  1. 某线性表最常用的操作是在尾元素之后插入一个元素和删除尾元素,循环双链表存储方式最节省运算时间
  2. 双链表,循环双链表,单链表,循环单链表

八、绪论

  1. 算法必须具备输入、输出、可行性、有穷性和确定性

  2. 时间复杂度通常是指最坏情况下,估计算法执行时间的一个上限

  3. 分析时间复杂度

    循环中的 i*=2与i+=2 导致的最后的复杂度不一样

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值