数据结构复习笔记
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据结构复习笔记
一、绪论
1.数据:能被计算机表示、存储和加工处理的一切信息(数值型和非数值型)
2.数据的基本单位:数据元素
3.组成数据元素的不可分割的最小单位:数据项
4.数据对象:性质相同的数据元素的集合
5.数据类型:指定一种数据对象的类型
6.数据的逻辑结构:指数据之间的逻辑关系, 即指数据元素之间的关联方式或邻接关系
7.数据的存储结构:指数据在计算机中存储的位置
8.运算的集合:定义在逻辑结构上的一组操作
9.数据结构: 按照某种逻辑关系组织起来的一批数据, 按一定的存储方法把它存储在计算机中, 并在这些数据上定义了一个运算的集合
10.逻辑结构分类:线性结构、集合、树形结构、图型或网状结构
11.线性结构:仅一个开始结点、仅一个终端结点;其它都是内部结点,且都有且仅有一个前驱和一个后驱(一对一)
12.集合:结构中数据元素只具有“同属于一个集合”的关系
13.树型结构的特点:有且仅有一个根结点,其它结点有且仅有一个前驱结点,对于非根结点都存在从根到该结点的一条路径(一对多)
14.图型结构的特点:结构中的数据元素存在多对多的关系
15.存储结构:顺序存储结构、链式存储结构
16.顺序存储结构特点:逻辑结构上相邻的两个元素在物理结构上也相邻. 即前驱的结束是后继的开始
17.链式存储结构:存储空间不连续,但保持了逻辑关系
18.算法的五个特征:有穷性、确定性、可行性、输入、输出
19.算法与程序的区别:程序不一定满足有穷性;程序是机器可执行的语言编写的
20.算法评价:正确、简单、可读、健壮、高效
21.算法分析方法:事后统计和事前分析、时间复杂度和空间复杂度
22.影响算法时间代价的因素:输入规模、算法效率、输入顺序、机器、设计者
23.Ο(1)<O(log2n)<O (n)<O (nlog2n)<O (n2)<O (n3)<…<O (2n)<O (n!)
二、线性表
1.线性结构特点:唯一第一数据元素、唯一最后数据元素、其他数据元素仅有一个前趋和仅有一个后驱
2.顺序表的优点:无需为表示数据元素之间的逻辑关系而增加额外存储空间;可方便地随机存取表中任一元素
3.顺序表的缺点:预先为数据元素分配空间;插入和删除时必须移动大量元素
4.单链表的插入:newnode→next = p→next;p→next = newnode
5.单链表的删除:p→next = q→next;delete q
6.双向链表的删除:current ->prior->next= current ->next;current ->next->prior= current ->prior;delete current
7.双向链表的插入:p->prior=current;p->next= current ->next;current->next->prior=p;current->next=p
8.顺序表与链表:顺序表结点总数大概确定,表中结点数目稳定(插删操作少);链表结点数目不预知且动态变化
三、栈和队列
1.栈的逻辑结构:允许插入和删除的一端称为栈顶,另一端称为栈底,特点是后进先出或先进后出
2.先进后出题:若abc顺序入栈,a入栈后可以直接出栈
3.队列的逻辑结构:在一端进行插入操作(队尾),而另一端进行删除操作的线性表(队头),特点是先进先出
4.队满判定条件:(rear+1) % QueueSize==front
5.队空判定条件:rear == front
6递归算法设计方法:最小规模子问题、划分子问题并求解、子问题解的合成
四、字符串和多维数组
五、树和二叉树
1.结点的度:结点所拥有的子树的个数
2.树的度:树中各结点度的最大值
3.前序遍历:根左右
4.中序遍历:左根右
5.后序遍历:左右根
6.层序遍历:按层从左到右遍历
7.满二叉树:叶结点只出现在最下一层,只有度为0和度为2的结点
8.完全二叉树:在满二叉树中,从最后一个结点开始,连续去除任意个结点
9.对于一棵具有n个结点的树,该树中所有结点度数之和为n-1
10.二叉树性质1:二叉树的第i层上最多有2i-1个结点(i≥1)
11.二叉树性质2:一棵深度为k的二叉树中,最多有2k-1个结点,最少有k个结点
12.二叉树性质3:在一棵二叉树中,如果叶结点数为n0,度为2的结点数为n2,则有: n0=n2+1
13.完全二叉树性质1:具有n个结点的完全二叉树的深度为k=log2(n+1)取大整或k=log2n(取小整)+1(n>0)
14.完全二叉树性质2:序号i的结点,双亲结点的序号为i/2,左孩子的序号为2i,右孩子的序号为2i+1
15.已知前序序列ABCDEFGHI和中序序列BCAEDGHFI画出二叉树
16.二叉树前序遍历递归算法
17.二叉树中序遍历递归算法
18.二叉树后序遍历递归算法
19.二叉树层次遍历算法
20.二叉树中序线索化:将二叉链表中的空指针改为指向前驱或后继的线索P111
21.树转换二叉树:相邻兄弟加线、保留与第一子间连线删去其它子结点间连线、根结点为轴心顺时针转动P162
22.树的前序遍历等价于二叉树的前序遍历
23.树的后序遍历等价于二叉树的中序遍历
24.森林转换二叉树:先将每棵树转换成二叉树;从第二棵二叉树开始,依次把后一棵二叉树的根结点作为前一棵二叉树根结点的右孩子P169