数据结构——考前查漏补缺
文章目录:
一:考点部分
第一章:绪论
第二章:线性表
顺序表(SqList)
链式表(LNode LinkList)
第三章:栈和队列【老板-员工】
栈(Stack)-LIFO先进后出【水瓶】
队列(Queue)-FIFO先进先出【排队】
第四章:串【不考】
第五章:数组和广义表【不考】
数组
广义表
第六章:树与二叉树
树
二叉树
线索二叉树
树及其转换
树与二叉树的运用
哈夫曼树
第七章:图
第八章:查找【平均查找长度的算法】
第九章:排序
第一类:插入排序
直接插入排序/简单插入排序:
希尔排序:——【常考】
第二类:交换排序
冒泡排序
快速排序——【常考】
第三类:选择排序
简单选择排序
堆排序【小顶堆 -大顶堆】——【常考】
第四类:归并排序——【常考】
第五类:基数排序(桶排序/数字排序)
第二部分:加强记忆注意部分
第一类:树
1.树的结点数为多少?
2.度为m的树的第i层最多有多少个结点?
3.假设树的高度为k,结点最多、最少有多少个?
4.高度为多少?
5.高度为h的m叉树至多有多少个结点?
6.n个结点的m叉树最小高度为多少?
7. n个结点的m叉树有多少个空指针域?
8.向一棵B_树插入元素的过程中,若最终引起树根结点的分裂,则新树比原树的高度__增加1____。
第二类:二叉树
1.非空二叉树上叶子结点(N0)树为多少?
2.非空二叉树,第k层上至多有多少个结点?
3.高度为h的二叉树至多有多少个结点?
4.设某棵二叉树的高度为h,则该二叉树上叶子结点最多有 2^(h-1)
5.若用链表存储一棵二叉树时,每个结点除数据域外,还有指向左孩子和右孩子的两个指针。在这种存储结构中,n个结点的二叉树共有_____2n___个指针域,其中有__n-1______个指针域是存放了地址,有_____n+1___________个指针是空指针。
第三类:完全二叉树
4.n个结点的完全二叉树的高度为多少?
5.完全二叉树是否有双亲结点-左孩子-右孩子?
6.n个结点的完全二叉树的深度为K,最多、最少有多少个结点?
7.n个结点的完全二叉树的深度为多少?
8.设一棵完全二叉树中有n个结点, 若用二叉链表作为该完全二叉树的存储结构,则共有_____n+1______个空指针域
9.设一棵完全二叉树有128(n)个结点,则该完全二叉树的深度为__8______,有____64_____(n/2)_个叶子结点
第四类:哈夫曼树【正则二叉树】
1.没有度为1的结点
2.哈夫曼树度为2的结点树为多少?
3.哈夫曼树一共有多少个结点?
4.哈夫曼叶子结点(N0)树为多少?
5. 设哈夫曼树中的叶子结点总数为m,若用二叉链表作为存储结构,则该哈夫曼树中总共有2m个空指针域
6.设哈夫曼树中共有n个结点,则该树中有____(n+1)/2____个叶子结点;若采用二叉链表作为存储结构,则该树中有___(n+1)__个空指针域
第五类:循环队列
1.初始时
2.判断队为空
3.判断队为满
4.判断循环队列元素个数
5.设有一个顺序循环队列中有M个存储单元,则该循环队列中最多能够存储___m-1_____个队列元素;当前实际存储___(R-F+M)%M_____________个队列元素(设头指针F指向当前队头元素的前一个位置,尾指针指向当前队尾元素的位置)
第六类:完全图
1.n个顶点的无向完全图有几条边?
2.n个顶点的有向完全图有几条边?
第七类:有向图-无向图
1.有n个顶点,e条边的有向图和无向图在其对应邻接表中所含边的结点分别为多少?
2.设无向图中n个顶点,e条边,顶点和为d
3.设有向图G中有n个顶点e条有向边,所有的顶点入度数之和为d
4.设某有向图中n个顶点,邻接表中有n个表头结点
5.设某有向图的邻接表中有n个表头结点和m个表结点,则该图中有m条有向边
6.设有n个结点的无向图,该图至少应有n-1条边才能确保是一个连通图
7.设无向图G中有n个顶点e条边,则其对应的邻接表中的表头结点和表结点的个数分别为 n,2e
8. 设某无向图中有n个顶点e条边,则该无向图中所有顶点的入度之和为2e
9.设某无向图G中有n个顶点,用邻接矩阵A作为该图的存储结构,则顶点i和顶点j互为邻接点的条件是
10.设无向图对应的邻接矩阵为A,则A中第i行上非0元素的个数___等于______第i列上非0元素的个数(填等于,大于或小于)
11.设无向图G中有n个顶点,则该无向图的最小生成树上有n-1条边
12.设无向图G中有n个顶点,则该无向图中每个顶点的度数最多是n-1个
第八类:连通图——强连通图
1.如果一个图有n个顶点,并且有小于n-1条边——非连通图
2.无向图的顶点数为n,则其含有全部顶点的连通图的边数最小为n-1
3.一个顶点也是强连通子图
4.当n个顶点的图构成一个环,任意两个点之间有回路(环),最小、最大边数为多少?
5.设某强连通图中有n个顶点,则该强连通图中至少有n条边
一:考点部分
第一章:绪论
1.数据元素-数据项的区别用法
2.逻辑机构【线性结构-集合-树形结构-图形结构】
4.数据的存储结构【顺序存储-链式存储-索引存储-散列存储】
5.抽象数据类型
6.程序和算法
7.算法的特点:有穷性,确定性,可行性,输入性,输出性
8.算法设计的基本要求:正确性,可读性,健壮性,通用性,效率与存储需求
9.时间复杂度和空间复杂度
第二章:线性表
1.线性表的基本操作
2.线性表的【顺序表示-链式表示】
顺序表(SqList)
3..顺序表的表定义特点插入、删除、查找
4.首位相连,可形成一个环形顺序表
5.设顺序表的长度为n,则顺序查找的平均比较次数为(n+1)/2
链式表(LNode LinkList)
4.链式表示【单链表-循环链表-双向链表】
4.1 单链表的定义,结构描述【数据域-指针域】,建立单链表【头插法-尾插法】、单列表的查找【按序号查找结点值-按值查找表结点】、插入结点操作、删除结点操作【建表-查找-插入-删除】
4.2 循环链表
4.3 双向链表定义 、插入操作【在p之后插入-在p之前插入】、删除操作【删除P的后继S-删除结点P】【插入-删除】
第三章:栈和队列【老板-员工】
栈(Stack)-LIFO先进后出【水瓶】
1.栈和队列的共同特点-区别
2.栈的概念:栈顶、栈底、空栈
3.栈的存储结构【顺序存储结构Sqtack-链式存储结构 Link Stack】
3.1 顺序栈的实现、【出栈-入栈-栈满-栈空】
初始设置S.top=-1
入栈:判断栈满;指针先+1,再入栈
出栈:判断栈空;先出栈,指针再-1
3.2 链式存储概念、【入栈-出栈】
单链表有头结点
相当于链表在头节点插入,删除
队列(Queue)-FIFO先进先出【排队】
1.队列的基本概念
2.队列的存储【顺序存储-链式存储】
2.1 顺序存储概念、循环队列【初始时-判队空-判队满-元素个数】【入队-出队】
首尾相练形成一个环形顺序表
入队:判断队满,队尾指针向前移动
出队:判断队空,队头指针向前移动
2.2 链式存储概念、【出队-入队】
单链表有头结点
第四章:串【不考】
1.串的概念
2.串的存储结构
2.1 定长顺序串【串连接-求字串-定位函数】
2.2 堆分配存储表示【堆串赋值函数-求串长-串比较】
2.3 块链存储表示
第五章:数组和广义表【不考】
数组
1.二维数组的地址计算、数组的存放位置变化
2.矩阵的压缩存储【对称矩阵-三角矩阵-带状矩阵】
3.稀疏矩阵的存储概念【三元顺序表-十字链表】
广义表
1.广义表的两个基本操作【取广义表表头-取广义表表尾】
2.广义表的链式存储
第六章:树与二叉树
树
1.树的【深度-高度】
2.树的度
3.树的【分支节点-叶子结点】
二叉树
1.二叉树有左子树,右子树之分
2.特殊的二叉树【满二叉树-完全二叉树-二叉排序树-平衡二叉树】
3.【满二叉树-完全二叉树】的关系及其区别
4.二叉树的时间复杂度为:O(log2^n)
5.设二叉排序树中有n个结点,则在二叉排序树的平均平均查找长度为O(log2n)
6.在二叉排序树中插入一个结点的时间复杂度为O(n)
7.在二叉排序树中插入一个关键字值的平均时间复杂度为O(1og2n)
8.二叉树的存储结构【顺序存储-链式存储】
9.二叉树的遍历【先序遍历递归算法-中序遍历递归算法-后序遍历递归算法】
10.中序遍历非递归算法
线索二叉树
1.概念
2.线索化二叉树
3.画出线索二叉树
树及其转换
1.树的存储结构【双亲表示法-孩子表示法-孩子兄弟表示法】
2.【树-二叉树】的转换
3.【森林-二叉树】的转换
树与二叉树的运用
1.二叉排序树【定义、建立、查找】
2.【平衡因子-平衡二叉树(AVL树)】
3. 构造平衡二叉树的方法【法线者-麻烦结点】
哈夫曼树
1.定义
2.哈夫曼树的构造
3.哈夫曼编码
第七章:图
1.图的定义
2.【无向图-有向图-完全图】
3.顶点的度、入度、出度
4.【连通图-连通分量】
5.【强连通图-强连通分量】
6.生成树、带权图和网【稠密网、稠密图】
7.图的存储【邻阶矩阵-邻接表】
8.图的遍历【深度优先遍历(DFS)-广度优先遍历(BFS)】
9.最小生成树构造算法【普利姆算法Prim-克鲁斯卡尔算法Kruskal】
扑克牌:一个和顶点个数有关,一个和边条数有关
10.拓扑序列
11.求最短路径的算法【迪杰斯特算法(Dijkstra)-弗洛伊德算法(Floyd)】
12.设无向图对应的邻接矩阵为A,则A中第i行上非0元素的个数___等于______第i列上非0元素的个数(填等于,大于或小于)
第八章:查找【平均查找长度的算法】
1.顺序查找
2.折半查找
3.分块查找(索引顺序查找)
4 哈希表的查找(Hash Table)
4.1 解决散列冲突的方法:开放定址法(线性探测法-二次探测法-双重散列法)-链地址法
5.装填因子
第九章:排序
1.理解各种排序怎么实现
2.代码实现
两两组合
长官说:简单查一下希尔这个罪犯,长官话冒泡的比较快
警员:很短的时间就选择了希尔的一堆犯罪记录,但是这个罪犯太狡猾没有缉拿归案,这些罪证最后归为了垃圾
简单查一下希尔这个人
冒泡比较快
简单选择就是一堆
最后归为垃圾
第一类:插入排序
直接插入排序/简单插入排序:
依次就是从第一个开始挨着下一个,对待排序序列中的每一个被插入元素进行比较,小的在前面交换顺序,然后作为一个整体,得到第一次排序结果。重复上面步骤
希尔排序:——【常考】
将序列分成几个均等部分,一半呢取一半左右分块对d3,(从前往中间依次比较:第一个和中间,第二个和中间的下一个元素,直至最后一个元素)块内呢分别进行直接插入排序,小的在前,大的在后,得到第一次排序结果。再取d2,在d1最后块间做一次直接插入排序
第二类:交换排序
冒泡排序
两个两个的比较(1和2;2和3;3和4.....依次比较),小的放前面,大的和后面一个元素个两两比较,把最大的【沉淤】到最后一个位置,这样下一次最大的不参加下一次比较,得到第一次排序结果。重复上面步骤(做n-1趟排序)
快速排序——【常考】
选一个轴值(一般选择第一个),因为轴第一次选择轴值是第一个要满足(轴值左边是小于轴值的右边是大于轴值的原则)右小左大【左——右, 选择小的;右——左,选择大的】交换,左右左右的顺序进行比较,得到第一次快速排序结果。重复上面步骤
第三类:选择排序
简单选择排序
一第一个数字为标准,依次和其他元素比较,看那个最小,把最小得数和第一个数交换位置,第一个数【沉淤】,得到第一次排序结果;
第二次从第二个数开始以第二个数为标准,依次和其他元素比较,看那个最小,把最小得数和第二个数交换位置,第二个数【沉淤】。得到第二次快速排序结果。
重复上面步骤(做n-1趟排序)
堆排序【小顶堆 -大顶堆】——【常考】
将待排序元素组成一个完全二叉树;
从第(【n/2】——这里是向下取整数)个结点开始,该结点分别与他的左右孩子比较【小顶堆:小的往上移动交换;大顶堆:大的往上移动交换】;
依次按照【n/2】-1个结点与他的左右孩子比较;
到根节点,再看其左右支树比较;
最后将第一个结点和最后一个结点交换,最后一个结点【沉淤】;得到第一次排序结果。重复上面步骤(做n-1趟排序)
第四类:归并排序——【常考】
两个和多个有序表完成,前提是子表有顺序的【块内有序,块间无序】
n个元素分成(【n/2】——这里是向下取整数)个长度为2的子序列,为奇数有一个长度为1的子序列;
从前到后两两比较合并,得到第一次排序结果。重复上面步骤;
第五类:基数排序(桶排序/数字排序)
基于多关键字排序的思路,对单逻辑关键字排除的一种内部排序算法
(比如一个三位数序列,按照个、十、百位比较得到三种排序结果)
第二部分:加强记忆注意部分
第一类:树
1.树的结点数为多少?
2.度为m的树的第i层最多有多少个结点?
度为m的树中,第i层至多有m^(k-)个结点(i>=1)
3.假设树的高度为k,结点最多、最少有多少个?
4.高度为多少?
5.高度为h的m叉树至多有多少个结点?
6.n个结点的m叉树最小高度为多少?
7. n个结点的m叉树有多少个空指针域?
8.向一棵B_树插入元素的过程中,若最终引起树根结点的分裂,则新树比原树的高度__增加1____。
第二类:二叉树
1.非空二叉树上叶子结点(N0)树为多少?
2.非空二叉树,第k层上至多有多少个结点?
3.高度为h的二叉树至多有多少个结点?
4.设某棵二叉树的高度为h,则该二叉树上叶子结点最多有 2^(h-1)
5.若用链表存储一棵二叉树时,每个结点除数据域外,还有指向左孩子和右孩子的两个指针。在这种存储结构中,n个结点的二叉树共有_____2n___个指针域,其中有__n-1______个指针域是存放了地址,有_____n+1___________个指针是空指针。
第三类:完全二叉树
4.n个结点的完全二叉树的高度为多少?
5.完全二叉树是否有双亲结点-左孩子-右孩子?
6.n个结点的完全二叉树的深度为K,最多、最少有多少个结点?
7.n个结点的完全二叉树的深度为多少?
8.设一棵完全二叉树中有n个结点, 若用二叉链表作为该完全二叉树的存储结构,则共有_____n+1______个空指针域
9.设一棵完全二叉树有128(n)个结点,则该完全二叉树的深度为__8______,有____64_____(n/2)_个叶子结点
第四类:哈夫曼树【正则二叉树】
1.没有度为1的结点
2.哈夫曼树度为2的结点树为多少?
3.哈夫曼树一共有多少个结点?
度为2的n-1
度为0的n
共计n+n-1=2n-1
4.哈夫曼叶子结点(N0)树为多少?
5. 设哈夫曼树中的叶子结点总数为m,若用二叉链表作为存储结构,则该哈夫曼树中总共有2m个空指针域
空指针数=2叶子结点
6.设哈夫曼树中共有n个结点,则该树中有____(n+1)/2____个叶子结点;若采用二叉链表作为存储结构,则该树中有___(n+1)__个空指针域
每一个度为2的结点(n2)有2个空指针
用二叉链表存储时每个叶子有2个空指针域
n=no+n2 n0=n2+1 n2=no-1 n=2no-1
第五类:循环队列
1.初始时
2.判断队为空
3.判断队为满
4.判断循环队列元素个数
5.设有一个顺序循环队列中有M个存储单元,则该循环队列中最多能够存储___m-1_____个队列元素;当前实际存储___(R-F+M)%M_____________个队列元素(设头指针F指向当前队头元素的前一个位置,尾指针指向当前队尾元素的位置)
第六类:完全图
1.n个顶点的无向完全图有几条边?
在一个具有n个顶点的无向完全图中,包含有__n(n-1)/2______条边
2.n个顶点的有向完全图有几条边?
在一个具有n个顶点的有向完全图中,包含有___n(n-1)_____条边
第七类:有向图-无向图
1.有n个顶点,e条边的有向图和无向图在其对应邻接表中所含边的结点分别为多少?
对于一个具有n个顶点和e条边的有向图和无向图,在其对应的邻接表中,所含边结点分别有___e____个和____2e____个
2.设无向图中n个顶点,e条边,顶点和为d
设某无向图中顶点数和边数分别为n和e,所有顶点的度数之和为d,则e=___d/2____
3.设有向图G中有n个顶点e条有向边,所有的顶点入度数之和为d
则e和d的关系为____e=d_____
4.设某有向图中n个顶点,邻接表中有n个表头结点
5.设某有向图的邻接表中有n个表头结点和m个表结点,则该图中有m条有向边
6.设有n个结点的无向图,该图至少应有n-1条边才能确保是一个连通图
7.设无向图G中有n个顶点e条边,则其对应的邻接表中的表头结点和表结点的个数分别为 n,2e
8. 设某无向图中有n个顶点e条边,则该无向图中所有顶点的入度之和为2e
9.设某无向图G中有n个顶点,用邻接矩阵A作为该图的存储结构,则顶点i和顶点j互为邻接点的条件是
10.设无向图对应的邻接矩阵为A,则A中第i行上非0元素的个数___等于______第i列上非0元素的个数(填等于,大于或小于)
11.设无向图G中有n个顶点,则该无向图的最小生成树上有n-1条边
12.设无向图G中有n个顶点,则该无向图中每个顶点的度数最多是n-1个
第八类:连通图——强连通图
1.如果一个图有n个顶点,并且有小于n-1条边——非连通图
2.无向图的顶点数为n,则其含有全部顶点的连通图的边数最小为n-1
3.一个顶点也是强连通子图
4.当n个顶点的图构成一个环,任意两个点之间有回路(环),最小、最大边数为多少?
5.设某强连通图中有n个顶点,则该强连通图中至少有n条边
数据结构——考前查漏补缺相关推荐
- Android系统开发和性能优化——查漏补缺【建议收藏】
做了这么久性能相关的工作,也接触了不少模块,说实话要做好性能这一块,真心不容易.为什么这么说? 是因为需要接触的知识实在是太多了, Android 是一个整体,牵一发而动全身,不是说只懂一个模块就可以 ...
- 无效字符 java_Java知识查漏补缺
Java基础知识查漏补缺 单元测试中,Mock对象的存在破坏了面向对象中的封装 mock对象:也成为伪对象,在测试中的利用mock对象来代替真实对象,方便测试的进行. java的封装性:指的是将对象的 ...
- Mysql查漏补缺笔记
目录 查漏补缺笔记2019/05/19 文件格式后缀 丢失修改,脏读,不可重复读 超键,候选键,主键 构S(Stmcture)/完整性I(Integrity)/数据操纵M(Malippulation) ...
- Java基础查漏补缺(2)
Java基础查漏补缺(2) apache和spring都提供了BeanUtils的深度拷贝工具包 +=具有隐形的强制转换 object类的equals()方法容易抛出空指针异常 String a=nu ...
- 计算机考试属于相对性评价还是绝对性评价,【易错检测】查漏补缺第46天 — 相对性评价与绝对性评价...
原标题:[易错检测]查漏补缺第46天 - 相对性评价与绝对性评价 近期大部分地区的招教都进入了笔试的考前冲刺阶段⏱,为了帮助大家查漏补缺,这个新栏目会从历年真题出错率较高的知识点入手,来帮助大家备考. ...
- C/C++基础查漏补缺(八)----------寒假学习笔记(八)
寒假C语言基础查漏补缺笔记(八) 本系列文章是基于自身的编程基础而编写的,其内容并非适用于所有人,请海涵~ 不过内容应该包括了所有的考点.用法,初学C/C++的大学生或者noip入门级选手可以以此作为 ...
- Java学习查漏补缺及知识点整理
本文是根据B站up主青空の霞光的JavaSE教程所整理的查漏补缺知识点笔记,有所简陋,希望能帮到大家.有错误希望大家指正.持续更新中- 注意:读此笔记需有一定的Java基础. 文章目录 一.断点调试 ...
- 前端面试查漏补缺--(十) 前端鉴权
前言 本系列最开始是为了自己面试准备的.后来发现整理越来越多,差不多有十二万字符,最后决定还是分享出来给大家. 为了分享整理出来,花费了自己大量的时间,起码是只自己用的三倍时间.如果喜欢的话,欢迎收藏 ...
- 【C++后台开发面经】面试总结第八波:整个知识的查漏补缺
前言 面试总结第八波,面试了腾讯.百度.阿里.虎牙直播等几个公司,然后总结了这一波面经,主要针对前面总结的那些,在面试时,有些被问到了,所以进行的一个查漏补缺总结. 1.C++ unique_ptr的 ...
最新文章
- torch.ge,torch.gt,torch.le
- template模板中插入自定义参数
- C++成员函数中的const修饰符
- POJ 3207 Ikki's Story IV - Panda's Trick (POJ 六道2-SAT之一)
- 【一个iOS官方文档错误】关于keyWindow是否可以接受触摸事件?
- Eigen库对齐问题:declspec(align('16')) 的形参将不被对齐
- bash 抓捕异常_SHELL异常处理(转载)
- LeetCode 数组 容易 python
- 调查了 71000 名开发者发现,JavaScript 最知名,Python 仍大势
- [c++primer][12]类
- Perl多线程ping加端口扫描
- 【机器学习】逻辑回归 LR 算法 整理
- 零售门店营业额预测分析(时间序列建模)
- 笔记本外接显示器闪屏
- 等级保护二、三、四级内容及对比
- 从零开始设计开发优惠券系统
- Databinding+LiveData轻松实现无重启换肤
- linux如何拿到文件的返回值,linux 下read函数返回值分析
- php 获得ip地址区域及运营商 抓取百度的数据
- 苹果IOS内置应用介绍
热门文章
- JS 截取身份证号码中 的生日
- Java获取IPv4/IPv6地理位置-IP地址库
- 手把手的 Numpy 教程
- 关于使用Navicat,Mysql Workbench,PowerDesigner根据mysql数据库生成ER(实体联系图)的解决方案的总结
- 查题接口 源码 php 爬题,知到网课答案WEB程序设计(PHP)查题公众号
- ANSYS Workbench远端位移边界条件的解析
- C#如何设置Excel文档保护——工作簿、工作表、单元格
- Redis学习(三)redis的持久化
- row xxxx doesn't contain data for all columns
- Nexus7二代刷机直升android10