数据结构导论串讲笔记.docx
- 文档编号:26589697
- 上传时间:2023-06-20
- 格式:DOCX
- 页数:11
- 大小:99.45KB
数据结构导论串讲笔记.docx
《数据结构导论串讲笔记.docx》由会员分享,可在线阅读,更多相关《数据结构导论串讲笔记.docx(11页珍藏版)》请在冰豆网上搜索。
数据结构导论串讲笔记
数据结构导论串讲笔记
1)已知出栈序列,写出可能的入栈序列并分析操作过程。
2)已知入栈序列,写出可能的出栈序列并分析操作过程。
[2004/1]如下图所示,输入元素为(A,B,C),在栈的输出端得到一个输出序列ABC,求出在栈的输入端所有可能的输入序列。
【分析】A,B,C三个字符排成的序列可以有:
ABC、ACB、BAC、BCA、CAB、CBA六种,按堆栈操作的先进后出(或后进先出)的原则,只有输入序列为BCA时,输出无法得到ABC。
因为输入序列为BCA时,要想先输出A,必须BCA均入栈,但这样只能得到序列ACB。
其余五种输入序列都可在输出端得到序列ABC。
【解答】ABC、ACB、BAC、CAB、CBA
2.队列的操作
分析顺序队中元素入队出队操作及队列的状态。
(考过)
[2003/10]设有一顺序队列sq,容量为5,初始状态时sq.front=sq.rear=0,画出做完下列操作后队列及其头尾指针的状态变化情况,若不能入队,请简述其理。
(1)d,e,b入队
(2)d,e出队
(3)i,j入队
(4)b出队
(5)n,o,p入队
【解答】队列及其头尾指针的状态变化情况如下图所示
(a)初态(b)d,e,b入队(c)d,e出队(d)i,j入队(e)b出队
第5步操作无法进行,因队列已满。
3.二叉树的存储结构
1)给出一棵二叉树,画出二叉链表示意图及顺序存储示意图。
([2000/10][2003/10][2004/10]考过)
[2003/10]画出下列二叉树的二叉链表表示图。
【解答】二叉树的二叉链表表示
2)给出二叉树的顺序存储示意图,画出二叉树。
([2005/1]考过)
[2005/1]已知某二叉树的顺序存储结构如下所示,试画出该二叉树。
A
B
C
D
∧
∧
∧
∧
E
∧
∧
∧
∧
∧
∧
∧
∧
F
G
【分析】按照给出的顺序存储结构,先绘制出一棵包括空结点的完全二叉树,然后去掉空结点就是所求的二叉树。
【解答】所求二叉树如下图
4.二叉树的遍历
1)给出一棵二叉树,写出对该二叉树进行先根遍历、中根遍历及后根遍历的序列。
([2001/10][2004/1][2005/10]考过)
[2005/10]对于如下图所示二叉树,分别写出其先根遍历、中根遍历和后根遍历的结点访问序列。
【分析】根据二叉树三种遍历方法的原理,很容易写出该二叉树的先根遍历、中根遍历和后根遍历的结点访问序
【解答】先根遍历的结点访问序:
A,B,D,E,F,C
中根遍历的结点访问序:
B,F,E,D,A,C
后根遍历的结点访问序:
F,E,D,B,C,A
2)给出一棵二叉树的先根遍历和中根遍历序列,恢复二叉树,写出后根遍历的序列。
([2002/10]考过)
[2002/10]现有某二叉树,按先根遍历的序列为ABDEFCGH,按中根遍历的序列为DEFBGHCA,试画出此二叉树。
【分析】由先根遍历和中根遍历恢复二叉树的方法:
在先根序列中确定根结点(最前面那个结点一定是根结点),然后根据根结点在中根序列中的位置分出根结点的左、右子树(根结点前面的那些结点为根结点的左子树上的结点,根结点后面的那些结点为根结点的右子树上的结点)。
恢复该二叉树的任何一棵子树的过程仍然遵循这个原则。
【解答】二叉树如下图所示
3)给出一棵二叉树的后根遍历和中根遍历序列,恢复二叉树,写出先根遍历的序列。
(未考过,但可能考注意第四章的考核知识点的讲解)
5.树的存储结构
1)给出一棵树,画出该树的双亲表示法、孩子链表表示法、带双亲的孩子链表表示法及孩子兄弟链表表示法的示意图。
([2000/4]考过)
2)给出一棵树的某一种存储结构的示意图,画出对应的树。
(未考过)
6.树的遍历
给出一棵树,写出对该树进行先根遍历、后根遍历及层次遍历的序列。
(未考过)
7.二叉树与树、林的相互转换
1)将一棵二叉树转换为树。
(未考过)
2)将一棵树转换为二叉树。
(未考过)
3)将林转换为一棵二叉树。
(未考过)
4)将二叉树转换为林。
(未考过)
8.够造哈夫曼树
给出一组权值,构造一棵哈夫曼树并求带权路径长度。
(未考过)
9.图的存储结构
1)给出一个图,画出该图的邻接矩阵或邻接表存储示意图。
(考过)
[2005/10]试给出下图的邻接矩阵和邻接表表示。
【分析】邻接矩阵存储方法是用一个二维数组存放顶点之间关系的信息。
对于不带权的有向图,如果一个顶点到另一个顶点有边,用1表示;否则,用0表示;对于带权的有图,如果一个顶点到另一个顶点有边,用边的权值表示;否则,用∞表示。
邻接表存储方法的核心思想是对于具有n个顶点的图建立n个线性链表。
每一个链表最前面都分别设置一个称之为表头结点的结点,n个结点构成一个数组结构。
第i个链表中的每一个链结点称之为表结点。
对带权的图,其邻接表中的每个表结点都要增加一个权值域。
【解答】题中图的邻接矩阵为:
题中图的邻接表为:
2)给出一个图的邻接表,画出该图的所有连通分量。
(考过)
[2002/10]已知无向图G的邻接表如下图所示,请画出其所有的连通分量。
【分析】根据邻接表,很容易画出其所有的连通分量。
【解答】画出的连通分量如下图所示
V1
V3
V5V2
V4
V2V2
3)给出一个图的邻接矩阵,画出该图的所有连通分量。
(考过)
[2003/1]已知无向图G的邻接矩阵如下图。
假设对其访问时每行元素必须从右到左,请画出其所有的连通分量,并且写出按深度优先搜索时各连通分量的访问序列。
【分析】根据邻接表,很容易画出其所有的连通分量。
【解答】画出的连通分量如下图所示
V1
V4
V2V2
V3
V0V2
深度优先搜索时各连通分量的访问序列:
V1V2V4V0V3
10.图的遍历
1)给出一个图的邻接表,写出从某一点出发进行广度优先搜索和深度优先搜索的遍历序列。
([2000/10][2001/10][2004/1][2004/10]考过)
[2004/1]已知无向图G的邻接表如下图所示,请写出其从顶点V2开始的深度优先搜索的序列。
V1
V3
V4
V5
V2
3
∧
2
5
∧
2
1
4
1
∧
5
4
3
2
3
4
∧
2
3
5
∧
【分析】根据深度优先搜索的算法思想和题中给定的存储结构,所得到的遍历序列是惟一的。
【解答】深度优先搜索序列:
V2V5V3V1V4
2)给出一个图的邻接矩阵,写出从某一点出发进行广度优先搜索和深度优先搜索的遍历序列。
([2003/10]考过)
[2003/10]已知无向图G的邻接矩阵如下图所示,假设对其每行元素访问时必须从右到左,请写出从V0开始的深度优先搜索的序列。
【分析】根据深度优先搜索的算法思想和题中给定的存储结构,所得到的遍历序列是惟一的。
【解答】深度优先搜索序列:
V0V2V4V3V1
11.最小生成树
给出一个带权图,画出所有可能的最小生成树。
([2005/1][2006/1]考过)
[2006/1]试用Prim算法构造下图的最小生成树,要求分步给出构造过程。
V2V2
V1V2
V32
V5V2
V4V2
3顺序
6顺序
4顺序
5顺序
4顺序
7顺序
2顺序
【解答】构造最小生成树过程如下图所示
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 导论 串讲 笔记