判断二叉树是否为完全二叉树算法代码 数据结构c语言版_考研数据结构知识框架...

数据结构之后有可能会有上机考试,基本考点不会超出课本范围,整理一拨儿方便日后复习~~

数据结构类型:逻辑结构,存储结构,对数据的运算

一.线性表

93dd1a887844565c029c3e05b7229651.png

核心知识点:

  1. 线性表逻辑结构特性:数据元素之间存在线性关系,计算机中表示此结构的存储结构是顺序存储结构(顺序表)和链式存储结构(链表)
  2. 顺序表:元素存储先后位置反映出其逻辑上的线性关系,借助数组来表示。
  3. 链表:依靠指针反应线性逻辑关系(与随机存储结构对比);单链,循环链表,双向链表
  4. 熟练掌握链表的查询,插入和删除算法,可设计出常用算法(上图最右列)

顺序表和链表的对比见下图:

43f6fb65b99bad6fbd6a54fbe64367d4.png
来源于《数据结构》C语言版 (清华严蔚敏版)

二.栈,列表

线性表的推广最重要的就是堆栈和队列,两者的主要算法如下:

0bdfea64d3f07d031cd08391faf690a4.png

997c564debf9427134bc9d182a722a85.png

核心考点:

  1. 栈:顺序存储对应顺序栈,链式存储对应链栈
  2. 队列:顺序存储对应循环队列,链式存储对应链式队列和双端队列
  3. 需要熟练掌握查询,删除和插入算法,以及基本应用(表中最右列)

三. 查找和串

关键字,平均查找长度ASL,哨兵机制(写代码的时候了解到的,作为课外拓展)

查找的一些核心知识点:

15c7d48921a1242e29123942c705dc37.png

散列表的相关知识点:

4719888b139c417077da6aa98cd515d3.png

串的相关算法及应用:

c3c17527fc5e16cd5912af450cc0d4c8.png

四. 排序

排序放在哪里都是核心,面试官巨喜欢考这玩意

主要关注各种复杂度的计算以及不同算法的特性和适用性、

分为内部排序和外部排序两大类:

下图为内部排序相关知识点:

00df0afad2224089e94b792b339e8c1d.png
上部

ae3ab9f5170961b66090077e207a1fcc.png
下部

外部排序:

40ebfa3c026456f2c7b1c072a71f6421.png

五. 树

:递归,表示具有层次结构的数据

一些性质:

  1. 树中结点数 = 所有节点的度数+1
  2. 度为m的树中第i层上至多有m^(i-1)个结点
  3. 高度为h的m叉树至多有(m^h-1)/(m-1)个结点
  4. 具有n个结点的m叉树的最小高度为[logm(n*(m-1)+1)]

计算:总结点数 = 总分支数 + 1

c32e9bb1e0aba26acbeb7ac945680bea.png

二叉树:有序树

特例:满二叉树,完全二叉树,二叉排序树,平衡二叉树

性质:

  1. n0 = n2 + 1
  2. k层上至多2^(k-1)个结点
  3. 高度为h的二叉树至多2^h-1个结点
  4. 完全二叉树:
    1. i偶,双亲结点i/2,i为左子节点;i奇,双亲结点(I-1)/2,i为右子节点
    2. 2i<=n,i的左子节点2i,否则无
    3. 2i+1<=n,i的右子节点2i+1,否则无
    4. i所在层次深度为 log2(i)+1
    5. 高度log2(n+1)或log2(n)+1

2d433e5193f386c996de962012f6ebf9.png
  • 树 >>二叉树:左孩子右兄弟
  • 森林 >> 二叉树:右子树
  • 二叉树转换为 树/森林 唯一

六.图

图分为有向图和无向图,分别需要注意一下连通性的相关概念

2c0628ffd74836a8035bf6aaefb24942.png

基本的存储结构如下:

64fd25291a3f0aab35b3fafbfb2fb3ee.png
上部

74e09f15b5767eae2331f74152d9e87f.png
下部

七. 数组和广义表

这俩是线性表的推广,基本没什么难的地方,放着看看就行

数组,广义表:

4a791ba223b8645061aac0272172b759.png

a336898b96476edbb0d540fc3bd594ca.png
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值