数据结构期末复习小总结

目录

关于链表的例题:

邻接表例题

AOV和AOE图的讲解

二分查找例题:

前缀,中缀,后缀表达式

例题:后缀算式 9 2 3 + - 10 2 / - 的值是多少,

有向图和无向图的例题:

哈希表求平均长度

二叉平衡树的构造

哈夫曼编码

八大内部排序的过程及总结

最小生成树(Kruskal,Prime)及最短路(Floyd,Dijkstra)总结


前言:前几天我还做了两套卷子,但是我们老师出的卷子只有大题,还是分享一下把,做了这两套卷子我觉得要去复习的一些知识点。以及还有一些例题的一些疑惑与讲解。

关于链表的例题:

若用链表存储一棵二叉树时,每个节点除数据域外,还有指向左孩子和右孩子的两个指针,在这种存储结构中,n歌节点的二叉树共有2N个指针域,其中有N-1个指针域存放了地址,有N+1个指针是空指针。

数据结构期末复习小总结
通过此图可以看出,有三个节点,那相应的指针域有3*2=6个,有两个指针域中有数据(3-1=2),有四个指针域为空(3+1=4)。这里的3都代表三个节点。通过此图可以很清楚的看出。
 

邻接表例题

 
  1. 对于一个具有n个顶点和e条边的有向图和无向图,在其对应的邻接表中,所含边结点分别有___e___个和____2e___个。
无向图就是不分方向的图 连接表的横列有N项,纵列也是N项 形成的N*N项每项都被称为边结点 每项都有纵横两个坐标,例如点(N,N-1),表示的就是从第N点向第N-1点有无路径。 由于有E条边,自然有E条路径,但是由于无向,=双向,所以要乘以二
 

AOV和AOE图的讲解

 
AOV网有向无环图。在有向图中以顶点表示活动,有向边表示活动之间的先后关系,无向图不能表示事件优先关系
 
 
AOV网,顶点表示活动,弧表示活动间的优先关系的有向图。
  即如果a->b,那么a是b的先决条件。
AOE网,边表示活动,是一个带权的有向无环图,
  其中顶点表示事件,弧表示活动,权表示活动持续时间。
按我理解,你要求拓扑序列就是AOV,求关键路径就是AOE
从开始点到结束点的最长路径就叫做关键路径

AOV网和AOE网

AOV网(顶点表示活动的网):以有向图中的顶点来表示活动,以有向边来表示活动之间的先后次序关系。
 
AOV网的拓扑序列:AOV网的拓扑序列就是将AOV网中的所有顶点排成一个线性序列;拓扑序列实际上就是要由某个集合上的一个偏序关系得到集合上的一个全序关系(不同的算法可以得到不同的拓扑序列)。
 
AOE网(边表示活动的网):即顶点表示事件,有向边表示活动,有向边上的权值表示活动持续的时间。
 
AOV网和AOE网对比:
 
1、AOV网的有向边不考虑权值,而AOE网的有向边考虑权值。
 
2、AOV网入度为0的点可以有多个,而AOE网入度为0的点只能有一个(源点),AOV网出度为0的点可以有多个,而AOE网出度为0的点只能有一个(汇点)。                                                                                                                            
3、AOV网和AOE网都不允许有环路。
 
 
AOE网具有以下性质:
 
1、只有在进入某一顶点的各条有向边代表的活动结束后,该顶点所代表的事件才能发生。                                                           
 
2、只有在某个顶点代表的事件发生后,从顶点触发的各条有向边所代表的活动才能开始。                                                           
 
3、在一个AOE网中,有一个入度为0的事件,称为源点,它表示整个工程的开始。同时有一个出度为0的事件,称为汇点,它表示整个工程的结束。
 

AOV 网与拓扑排序

数据结构期末复习小总结
AOE图
 
数据结构期末复习小总结
 
 

二分查找例题:

其实做这题的时候,我才开始选的是 C,但是答案是D,然后搜了搜,原来,是按照源代码来的

若有18个元素的有序表存放在一维数组A[19]C中,第一个元素放A[1]中,现进行二分查找,则查找A3]的比较序列的下标依次为(      )

 

  A. 123                                                              B. 9523
  C. 953                                                      D. 9423
 
数据结构期末复习小总结

 

前缀,中缀,后缀表达式

前缀表达式的计算机求值:

从右至左扫描表达式,遇到数字时,将数字压入堆栈,遇到运算符时,弹出栈顶的两个数,用运算符对它们做相应的计算(栈顶元素 op 次顶元素),并将结果入栈;重复上述过程直到表达式最左端,最后运算得出的值即为表达式的结果。

例如前缀表达式“- × + 3 4 5 6”:

(1) 从右至左扫描,将6、5、4、3压入堆栈;

(2) 遇到+运算符,因此弹出3和4(3为栈顶元素,4为次顶元素,注意与后缀表达式做比较),计算出3+4的值,得7,再将7入栈;

(3) 接下来是×运算符,因此弹出7和5,计算出7×5=35,将35入栈;

(4) 最后是-运算符,计算出35-6的值,即29,由此得出最终结果。

 

后缀表达式的计算机求值:

与前缀表达式类似,只是顺序是从左至右:

从左至右扫描表达式,遇到数字时,将数字压入堆栈,遇到运算符时,弹出栈顶的两个数,用运算符对它们做相应的计算(次顶元素 op 栈顶元素),并将结果入栈;重复上述过程直到表达式最右端,最后运算得出的值即为表达式的结果。

例如后缀表达式“3 4 + 5 × 6 -”:

(1) 从左至右扫描,将3和4压入堆栈;

(2) 遇到+运算符,因此弹出4和3(4为栈顶元素,3为次顶元素,注意与前缀表达式做比较),计算出3+4的值,得7,再将7入栈;

(3) 将5入栈;

(4) 接下来是×运算符,因此弹出5和7,计算出7×5=35,将35入栈;

(5) 将6入栈;

(6) 最后是-运算符,计算出35-6的值,即29,由此得出最终结果。

例题:后缀算式 9 2 3 + - 10 2 / - 的值是多少,

后缀表达式是遇到符号时,取栈顶元素进行计算,并将结果再次压入栈顶。

9 2 3 + - 10 2 / - 计算过程如下:

9 2 3 入栈

遇到 + 号,取出 2 3 相加,并将结果入栈,结果为

9 5

又遇到 - 号,同理,此时的栈为:

4

再入 10 2, 栈为:

4 10 2

遇到 / 号,栈变更为:

4 5

再遇到 - 号,栈变更为:

-1

后缀表达式结束,所以最终结果为 -1

该后缀表达式还原成中缀表达式为:9 - (2 + 3) - 10 / 2

 

有向图和无向图的例题:

  1. 在一个具有n个顶点的无向完全图中,包含有________条边,在一个具有n个顶点的有向完全图中,包含有________条边。
                                       n(n-1)/2      n(n-1)
这题我是根据邻接矩阵去想的,可以想到有用的点是减去 对角线的那一行就是n。所以总共是n*n-n也就是n(n-1);那么有向的就是n(n-1),无向的就是它的一般,就是n(n-1)/2;
数据结构期末复习小总结

哈希表求平均长度

哈希表求平均长度

二叉平衡树的构造

二叉平衡树的构造

哈夫曼编码

哈夫曼编码

八大内部排序的过程及总结

八大内部排序的过程及总结

最小生成树(Kruskal,Prime)及最短路(Floyd,Dijkstra)总结

最小生成树,最短路总结