文章目录:

一:考点部分

第一章:绪论

第二章:线性表

顺序表(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条边

数据结构——考前查漏补缺相关推荐

  1. Android系统开发和性能优化——查漏补缺【建议收藏】

    做了这么久性能相关的工作,也接触了不少模块,说实话要做好性能这一块,真心不容易.为什么这么说? 是因为需要接触的知识实在是太多了, Android 是一个整体,牵一发而动全身,不是说只懂一个模块就可以 ...

  2. 无效字符 java_Java知识查漏补缺

    Java基础知识查漏补缺 单元测试中,Mock对象的存在破坏了面向对象中的封装 mock对象:也成为伪对象,在测试中的利用mock对象来代替真实对象,方便测试的进行. java的封装性:指的是将对象的 ...

  3. Mysql查漏补缺笔记

    目录 查漏补缺笔记2019/05/19 文件格式后缀 丢失修改,脏读,不可重复读 超键,候选键,主键 构S(Stmcture)/完整性I(Integrity)/数据操纵M(Malippulation) ...

  4. Java基础查漏补缺(2)

    Java基础查漏补缺(2) apache和spring都提供了BeanUtils的深度拷贝工具包 +=具有隐形的强制转换 object类的equals()方法容易抛出空指针异常 String a=nu ...

  5. 计算机考试属于相对性评价还是绝对性评价,【易错检测】查漏补缺第46天 — 相对性评价与绝对性评价...

    原标题:[易错检测]查漏补缺第46天 - 相对性评价与绝对性评价 近期大部分地区的招教都进入了笔试的考前冲刺阶段⏱,为了帮助大家查漏补缺,这个新栏目会从历年真题出错率较高的知识点入手,来帮助大家备考. ...

  6. C/C++基础查漏补缺(八)----------寒假学习笔记(八)

    寒假C语言基础查漏补缺笔记(八) 本系列文章是基于自身的编程基础而编写的,其内容并非适用于所有人,请海涵~ 不过内容应该包括了所有的考点.用法,初学C/C++的大学生或者noip入门级选手可以以此作为 ...

  7. Java学习查漏补缺及知识点整理

    本文是根据B站up主青空の霞光的JavaSE教程所整理的查漏补缺知识点笔记,有所简陋,希望能帮到大家.有错误希望大家指正.持续更新中- 注意:读此笔记需有一定的Java基础. 文章目录 一.断点调试 ...

  8. 前端面试查漏补缺--(十) 前端鉴权

    前言 本系列最开始是为了自己面试准备的.后来发现整理越来越多,差不多有十二万字符,最后决定还是分享出来给大家. 为了分享整理出来,花费了自己大量的时间,起码是只自己用的三倍时间.如果喜欢的话,欢迎收藏 ...

  9. 【C++后台开发面经】面试总结第八波:整个知识的查漏补缺

    前言 面试总结第八波,面试了腾讯.百度.阿里.虎牙直播等几个公司,然后总结了这一波面经,主要针对前面总结的那些,在面试时,有些被问到了,所以进行的一个查漏补缺总结. 1.C++ unique_ptr的 ...

最新文章

  1. torch.ge,torch.gt,torch.le
  2. template模板中插入自定义参数
  3. C++成员函数中的const修饰符
  4. POJ 3207 Ikki's Story IV - Panda's Trick (POJ 六道2-SAT之一)
  5. 【一个iOS官方文档错误】关于keyWindow是否可以接受触摸事件?
  6. Eigen库对齐问题:declspec(align('16')) 的形参将不被对齐
  7. bash 抓捕异常_SHELL异常处理(转载)
  8. LeetCode 数组 容易 python
  9. 调查了 71000 名开发者发现,JavaScript 最知名,Python 仍大势
  10. [c++primer][12]类
  11. Perl多线程ping加端口扫描
  12. 【机器学习】逻辑回归 LR 算法 整理
  13. 零售门店营业额预测分析(时间序列建模)
  14. 笔记本外接显示器闪屏
  15. 等级保护二、三、四级内容及对比
  16. 从零开始设计开发优惠券系统
  17. Databinding+LiveData轻松实现无重启换肤
  18. linux如何拿到文件的返回值,linux 下read函数返回值分析
  19. php 获得ip地址区域及运营商 抓取百度的数据
  20. 苹果IOS内置应用介绍

热门文章

  1. JS 截取身份证号码中 的生日
  2. Java获取IPv4/IPv6地理位置-IP地址库
  3. 手把手的 Numpy 教程
  4. 关于使用Navicat,Mysql Workbench,PowerDesigner根据mysql数据库生成ER(实体联系图)的解决方案的总结
  5. 查题接口 源码 php 爬题,知到网课答案WEB程序设计(PHP)查题公众号
  6. ANSYS Workbench远端位移边界条件的解析
  7. C#如何设置Excel文档保护——工作簿、工作表、单元格
  8. Redis学习(三)redis的持久化
  9. row xxxx doesn't contain data for all columns
  10. Nexus7二代刷机直升android10