数据结构复习(夏令营面试准备)

第一章 绪论

1.数据结构的三要素:逻辑结构,存储结构,数据的运算

2.数据元素数据的基本单位,数据元素可由若干数据项组成,数据项是构成数据元素的不可分割的最小单位。例如:学生记录就是一个数据元素,它由学号姓名性别等数据项组成。

3.逻辑结构是指数据元素之间的逻辑关系,与数据存储无关,独立于计算机。逻辑结构分为线性结构非线性结构,线性结构包含线性表,栈和队列,串等数据结构,非线性结构包含集合,树,图等数据结构。

4.存储结构是指数据结构在计算机中的表示(又称映像),也称物理结构。主要有顺序存储、链式存储、索引存储、散列存储(hash)

5.算法中所有语句的频度之和记为T(n),时间复杂度主要分析T(n)的数量级,那O(n)是啥?(答:大O符号是用于描述函数渐进行为的数学符号,更确切地说O的含义是T(n)的数量级,T(n) = O(f(n)) 。 )

 第二章 线性表

1.线性表定义:线性表是具有相同数据类型的n(n>=0)个数据元素的有限序列。除第一个元素外,每个元素有且仅有一个直接前驱。除最后一个元素外,每个元素有且仅有一个直接后继。

2.线性表是一种逻辑结构,表示元素之间一对一的相邻关系。顺序表和链表是指存储结构。

3.顺序表特点:逻辑顺序与其物理顺序相同。

4.链表:不需要使用地址连续的存储单元,即不要求逻辑上相邻的元素在物理位置上也相邻,它通过"链"建立起数据元素之间的逻辑关系。

5.顺序表链表对比: ①存取方式:顺序表可以顺序存取也可以随机存取,但链表只能从表头顺序存取元素②逻辑结构和存储结构(物理结构):顺序表逻辑上相邻的元素物理存储位置也相邻,链表逻辑上相邻的元素物理存储位置不一定相邻。③基本操作:对于按值查找,顺序表无序 O(n),有序则通过二分O(log2n),链表都是O(n);对于按下标查找,顺序表因为支持随机访问O(1),而链表平均O(n);对于增删操作,顺序表平均移动半个表长,而链表则只需要修改相关结点的指针域即可;对于空间分配,顺序表为防止内存溢出或大量闲置需要预先分配合理的存储空间,链式存储的结点空间只在需要时申请分配,只要内存有空间就可以分配,操作灵活、高效。

  第三章 栈与队列

1.栈是只允许在一端进行插入或删除操作的线性表栈顶是允许进行插入删除的一端。后进先出。可顺序存储或链式存储。

2.队列只允许在表的一端进行插入,而在表的另一端进行删除,插入元素称为入队/进队;删除元素称为出队/离队。先进先出。可顺序存储或链式存储。

 第四章 串

1.字符串模式匹配:①暴力O(mn),②kmpO(m+n)

2.kmp算法: 略

 第五章 树与二叉树

1.树的特点: 树的根结点无前驱,除根结点外的所有结点有且只有一个前驱 ,树中所有结点可以有零个或多个后继.

2.基本术语

  1. 结点的度:结点的孩子个数;树的度:最大的结点的度
  2. 叶子结点:度为0的结点
  3. 结点深度:以根结点为1开始计数,逐层累加
  4. 结点高度:以其叶结点开始,自底向上逐层累加
  5. 树的深度(高度):最大层数
  6. 路径和路径长度:两个结点之间所有经过的结点序列,长度为路径上经过的边得个数

3.树的性质

1)树中的结点数等于所有结点的度数之和+1

2)度为m的树中第i层上至多有m^(i-1)个结点(i>=1)

3)高度为h的m叉树至多有(m^h-1) / (m-1)个结点

4)具有n个结点的m叉树的最小高度为Ceil(logm(n(m-1) + 1)).

4.二叉树定义:每个结点至多只有两棵子树(即二叉树中不存在度数大于二的结点),并且二叉树的子树有左右之分,其次序不能任意颠倒.

5.满二叉树:高度为h,且含有2^h - 1个结点的二叉树; 完全二叉树:高度为h,有n个结点的二叉树,当且仅当其每个结点都与高度为h的满二叉树中编号为1~n的结点一一对应时,称为完全二叉树.

6.二叉排序树:左子树所有结点key值小于根结点的key值;右子树所有结点key值小于根结点的key值.左右子树又各是一颗二叉排序树.

7.平衡二叉树:树上任一结点的左右子树深度之差不超过1

8.二叉树的性质:①非空二叉树上的叶子结点数等于度为2的结点数+1. n0 = n2 + 1,证明略;②非空二叉树上第k层上至多有2^(k-1)个结点.③高度为h的二叉树至多有2^h - 1个结点(h>=1);④对于完全二叉树的从上到下,从左到右依次编号1,2,...,n,有这些关系:当i>1时 i 爸爸编号 floor(i/2)  (floor()向下取整函数, ceil()向上取整函数);i 的左孩子 2i,;i 的右孩子2i+1;结点i所在层次的深度为 floor(log2(i)) + 1

9. 具有n个结点的完全二叉树的高度为 ceil(log2(n+1))或 floor(log2(n)) + 1

10. 二叉树的遍历:先 (根左右),中(左根右),后(左右根),层次遍历.

11.树,森林与二叉树的互相转换

12.树和森林的遍历:树:1)先根遍历2)后根遍历 森林:1)先序遍历2)中序遍历

13.平衡二叉树 四种旋转

14.哈夫曼树定义:带权路径长度(WPL)最小的二叉树称为哈夫曼树,也称最优二叉树。

---持续更新中 

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值