数据结构测验122答案
122-《数据结构》试卷A参考答案

122-《数据结构》试卷A参考答案
烟台大学成人高等教育期末考试《数据结构与算法》试卷A 参考答案及评分标准
一、
1.算法的特征:有穷性、确定性、可行性、有输入、有输出。
算法设计的要求:正确、可使用、可读、健壮、高效。
2.数据元素之间的逻辑结构:集合、线形、树形、图形结构
逻辑结构的本质性:数据结构在用户面前的呈现形式,数据元素之间的邻接关系的描
述,与数据的存储无关,独立于计算机。
3.抽象数据类型:
数据元素描述
数据之间的逻辑关系描述
施加在数据上的基本操作
4.(1)链式存储;插入、删除操作频繁,适合链式存储的特点。
(2)顺序存储:数据移用少,随机存储,适合顺存储特点
5. (1)需要求解的问题可以转化为一个或多个子问题来求解,而这些子问题的求解方法
与原问题相同,只是规模减小。
(2)递归调用的次数是有限的。
(3)必须有结束递归的条件。
二、
1.n-i+1
2. a b c a b c a a a
-1 0 0 0 1 2 3 4 1
3. GetHead((a,b,c))=(a,b,c)
GetHead(GetTail((a,b),(c,d )))=(c,d)
4. 15
5. 图。
数据结构智慧树知到答案章节测试2023年哈尔滨商业大学

第一章测试1.数据结构的基本任务是()。
A:数据结构的评价与选择B:数据结构的设计与实现C:数据结构的运算实现D:逻辑结构和存储结构的设计答案:B2.计算算法的时间复杂度是属于一种()。
A:事前分析估算的方法B:事后分析估算的方法C:事后统计的方法D:事前统计的方法答案:A3.可以用()定义一个完整的数据结构。
A:数据元素B:数据关系C:抽象数据类型D:数据对象答案:C4.数据的逻辑关系是指数据元素的()。
A:存储方式B:数据项C:关联D:结构答案:C5.算法的计算量的大小称为计算的()。
A:效率B:复杂性C:实现性D:难度答案:B6.算法的时间复杂度取决于()。
A:问题的规模B:问题的规模和待处理数据的初态C:待处理数据的初态D:都不是答案:B7.数据元素是数据的最小单位。
()A:对B:错答案:B8.数据结构是带有结构的数据元素的结合。
()A:错B:对答案:B9.算法和程序没有区别,所以在数据结构中二者是通用的。
()A:错B:对答案:A10.数据结构的抽象操作的定义与具体实现有关。
()A:对B:错答案:B第二章测试1.下述哪一条是顺序存储结构的优点?()。
A:存储密度大B:删除运算方便C:插入运算方便D:可方便地用于各种逻辑结构的存储表示答案:A2.下面关于线性表的叙述中,错误的是哪一个?()。
A:线性表采用链接存储,便于插入和删除操作B:线性表采用顺序存储,必须占用一片连续的存储单元C:线性表采用链接存储,不必占用一片连续的存储单元D:线性表采用顺序存储,便于进行插入和删除操作答案:D3.线性表是具有n个()的有限序列(n>0)。
A:数据项B:表元素C:数据元素D:字符答案:C4.若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用()存储方式最节省时间。
A:顺序表B:双链表C:带头结点的双循环链表D:单循环链表答案:A5.某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用()存储方式最节省运算时间。
2002级数据结构试题答案

计算机2002-123数据结构试题参考答案一、单项选择题(在每个小题四个备选答案中选出一个正确答案,填在题末的括号中)(本大题共10小题,每小题2分,总计20分)1、D2、B3、B4、B5、C6、B7、C8、D9、A 10、D二、二、填空(本大题共10小题,每小题1分,总计10分)1、连通分量2、结点个数/23、6 14、(n-1)/25、EF-G*ABC-/+D*6、11407、2K-1 2K-18、堆栈9、动态查找表10、先序遍历中序遍历三、解答下列问题(本大题共6小题,每小题5分,总计30分)1、因为:H(19)=19 MOD 13=6H(14)=14 MOD 13=1H(23)=23 MOD 13=10H(1)=1 MOD 13=1 冲突所以(H(1)+1)MOD 16=2H(68)=68 MOD 13=3H(20)=20 MOD 13=7H(84)=84 MOD 13=6 冲突所以(H(84)+1)MOD 16=7 冲突所以(H(84)+2)MOD 16=8H(27)=27 MOD 13=1 冲突所以(H(27)+1)MOD 16=2 冲突所以(H(27)+2)MOD 16=3 冲突所以(H(27)+3)MOD 16=4H(55)=27 MOD 13=3 冲突所以(H(55)+1)MOD 16=4 冲突所以(H(55)+2)MOD 16=5 冲突H(11)=11 MOD 13=11H(10)=10 MOD 13=10 冲突所以(H(10)+1)MOD 16=11 冲突所以(H(10)+2)MOD 16=12 冲突H(79)=79 MOD 13=1 冲突所以(H(79)+1)MOD 16=2 冲突所以(H(79)+2)MOD 16=3 冲突所以(H(79)+3)MOD 16=4 冲突所以(H(79)+4)MOD 16=5 冲突所以(H(79)+5)MOD 16=6 冲突所以(H(79)+6)MOD 16=7 冲突所以(H(79)+7)MOD 16=8 冲突所以(H(79)+8)MOD 16=9 冲突(2)查找成功的平均查找长度为:2、30 10 1 0 10 1 0 10 1 0 1编码为:7为:00008为:000118为:00132为:013为:10005为:100112为:10126为:114、iclosedg23456U V-U KAdjvex lowcost 1161∞1∞119121{1}{2,3,4,5,6}2Adjvex lowcost 02516119211{1,2}{3,4,5,6}3Adjvex lowcost 0026119211{1,2,3}{4,5,6}4Adjvex lowcost 000418211{1,2,3,4}{5,6}6Adjvex lowcost0004180{1,2,3,4,6}{5 }5 61313 78141282352010304050601020301020304050所以最小生成树为:5、第一趟:[68 11 69 23 18] 70 [93 73]第二趟:[18 11 23 ] 68 [ 69 ] 70 [93 73 ]第三趟:11 18 23 68 69 70 [ 93 73]第四趟:11 18 23 68 69 70 73 93四、算法设计题(本大题共2小题,总计15 分)1、(7分)#define size 100int correct(char exp[size],int len){ char s[size];int top=0,I=0,tag=1;while(I<len && tag!=0){ if(exp[I]==’(‘ || exp[I]==’[‘ || exp[I]==’{‘}{ top++;s[top]=exp[I];}if(exp[I]==’)’){ if(s[top]==’(‘) top--;else tag=0;}if(exp[I]==’)’){if(s[top]==’[‘ ) top--;else tag=0;}if(exp[I]==’)’){if(s[top]==’{‘ } top--;else tag=0;}I++;}if(top>0)top=0;return tag;}2、(8分)#include "iostream.h"#define NULL 0#define N 10typedef struct node{ ELEMTP data;struct node *lchild,*rchild;}TNode;//求给定结点的所有祖先和祖先数int count_zx(TNode *t,ELEMTP x){ struct {TNode *pp; int tag; }s[N],ss;int top,n;TNode *p; top=0; n=0; p=t;while( p || top>0){ while(p){ top++;s[top].pp=p;s[top].tag=0;p=p->lchild; }ss=s[top]; top--;if(ss.tag==0){ ss.tag=1; top++;s[top]=ss; p=ss.pp->rchild;}else {if(ss.pp->data==x)break; p=NULL;} }cout<<"the zx wei:"<<endl;for(n=1;n<=top;n++) {p=s[n].pp;cout<<p->data<<" "; }return top;}五.(10分)已知二叉树每个非终端节点都有左孩子和右孩子,试回答下列问题:解:(1)由已知:因为二叉树的每个非终端结点都有左右孩子,可知此二叉树的所有非终端结点的度都为2,无度为1的结点,又因为此树有n个叶结点,根据二叉树的性质3知度都为2的结点数为n-1个,所以此二叉树共有n+n-1=2n-1个结点。
2014数据结构试题及答案

124.【第7章图】在图的邻接表中用顺序存储结构存储表头结点的优点是____________________。
可以随机访问到任一个顶点的简单链表
125.【第8章图的应用】设有向图G中有向边的集合E={<1,2>,<2,3>,<1,4>,<4,2>,<4,3>},则该图的一种拓扑序列为____________________。
105.【第2章线性表】设有一个顺序循环队列中有M个存储单元,则该循环队列中最多能够存储________个队列元素;当前实际存储________________个队列元素(设头指针F指向当前队头元素的前一个位置,尾指针指向当前队尾元素的位置)。
M-1,(R-F+M)%M
106.【第2章线性表】设顺序线性表中有n个数据元素,则第i个位置上插入一个数据元素需要移动表中_______个数据元素;删除第i个位置上的数据元素需要移动表中_______个元素。
8,64
119.【第5章树】设二叉树中度数为0的结点数为50,度数为1的结点数为30,则该二叉树中总共有_______个结点数。
129
120.【第5章树】设二叉树中结点的两个指针域分别为lchild和rchild,则判断指针变量p所指向的结点为叶子结点的条件是_____________________________________________。
p->lchild==0&&p->rchild==0
121.【第6章特殊树】设哈夫曼树中共有n个结点,则该哈夫曼树中有________个度数为1的结点。
0
122.【第7章图】设有向图G中有n个顶点e条有向边,所有的顶点入度数之和为d,则e和d的关系为_________。
数据结构知到章节答案智慧树2023年海南师范大学

数据结构知到章节测试答案智慧树2023年最新海南师范大学第一章测试1.从一个二维数组b[m][n]中找出最大值元素的时间复杂度为参考答案:m*n2.在以下时间复杂度的数量级中,数量级最大的是参考答案:3.下面程序段的时间复杂度为____________。
for(int i=0; i<m; i++)for(int j=0; j<n; j++)a[i][j]=i*j;参考答案:O(m*n)4.执行下面程序段时,执行S语句的次数为()。
for(int i=1; i<=n; i++)for(int j=1; j<=i; j++)S;参考答案:n(n+1)/25.线性结构是数据元素之间存在一种:()。
参考答案:一对一关系6.数据结构中,与所使用的计算机无关的是数据的()结构。
参考答案:逻辑7.算法分析的目的是:()。
参考答案:分析算法的效率以求改进8.算法分析的两个主要方面是:()。
参考答案:空间复杂性和时间复杂性9.计算机算法指的是:()。
参考答案:解决问题的有限运算序列10.计算机算法必须具备输入、输出和()等5个特性。
参考答案:可行性、确定性和有穷性11.一个算法的好坏可以通过复杂性、可读性、健壮性、高效性这四个方面进行评价。
参考答案:错12.数据结构是一门研究算法的学科。
参考答案:错13.数据结构中,数据的逻辑结构包括线性结构、图结构、树形结构、集合。
参考答案:对14.线性表的逻辑顺序与存储顺序总是一致的。
参考答案:错15.每种数据结构都具备三个基本运算:插入、删除和查找。
参考答案:错16.线性结构中元素之间只存在多对多关系。
参考答案:错17.在线性结构中,第一个结点没有前驱结点。
参考答案:对18.在图形结构中,每个结点的前驱结点数和后续结点数可以任意多个。
参考答案:对19.算法分析的目的是分析算法的效率以求改进。
参考答案:对20.同一逻辑结构采用不同的存储方法,可以得到不同的存储结构。
《数据结构》国开02272形考任务(1-4)试题答案合集

《数据结构》国开02272形考任务(1-4)试题答案合集数据结构国开形考任务(1-4)试题答案合集任务一答案1. 答案:选项B。
栈是一种先进后出(Last-In-First-Out,LIFO)的数据结构,它的插入和删除操作只能在一端进行。
队列是一种先进先出(First-In-First-Out,FIFO)的数据结构,它的插入操作在一端进行,删除操作在另一端进行。
2. 答案:选项C。
顺序表是一种用数组实现的线性表,通过下标直接访问元素。
链表是一种通过指针连接各个节点的数据结构,每个节点包含数据和指向下一个节点的指针。
3. 答案:选项A。
递归是一种通过调用自身的方法解决问题的技巧。
递归可以简化问题的解决过程,但需要注意递归深度和递归终止条件,避免出现无限递归。
4. 答案:选项D。
图是由节点和节点之间的边组成的数据结构。
树是一种特殊的图,其中不存在环的图被称为树。
树具有层次结构,包括根节点、子节点和叶节点等概念。
任务二答案1. 答案:选项C。
栈的应用场景包括函数调用、表达式求值和括号匹配等。
队列的应用场景包括任务调度、消息传递和缓冲区管理等。
2. 答案:选项B。
栈的插入和删除操作都在同一端进行,时间复杂度为O(1)。
队列的插入操作在一端进行,删除操作在另一端进行,时间复杂度也为O(1)。
3. 答案:选项A。
顺序表的插入和删除操作需要移动其他元素,平均时间复杂度为O(n)。
链表的插入和删除操作只需要修改指针,时间复杂度为O(1)。
4. 答案:选项C。
递归虽然简化了问题的解决过程,但会消耗额外的内存空间,递归深度过大时可能导致栈溢出。
迭代使用循环结构解决问题,不会出现递归的问题。
任务三答案1. 答案:选项A。
线性表是一种具有连续存储空间的数据结构,插入和删除操作需要移动其他元素,时间复杂度为O(n)。
树的插入和删除操作只需要修改指针,时间复杂度为O(1)。
2. 答案:选项D。
二叉树是一种特殊的树,每个节点最多有两个子节点。
数据结构的试题及答案

数据结构的试题及答案一、选择题1. 在数据结构中,线性表的顺序存储方式被称为:A. 栈B. 队列C. 链表D. 数组答案:D2. 以下哪种数据结构是动态数据结构?A. 数组B. 链表C. 栈D. 队列答案:B3. 树的度是树内所有节点的度的最大值,树的深度是树的最长路径上的节点数。
以下哪个选项正确描述了树的度和深度?A. 度是节点的最大值,深度是路径上节点数B. 度是路径上节点数,深度是节点的最大值C. 度是节点的最大值,深度是节点的最大值D. 度是路径上节点数,深度是路径上节点数答案:A二、简答题1. 请简述链表和数组的区别。
答案:链表和数组是两种不同的数据存储方式。
数组是连续的内存空间,可以通过索引快速访问元素,但插入和删除操作可能需要移动大量元素。
链表由一系列节点组成,每个节点包含数据部分和指向下一个节点的指针,链表的插入和删除操作不需要移动其他元素,但访问特定元素需要从头开始遍历。
2. 什么是二叉搜索树?它有哪些特点?答案:二叉搜索树(BST)是一种特殊的二叉树,其中每个节点的值都大于或等于其左子树中的任何节点的值,并且小于或等于其右子树中的任何节点的值。
BST的主要特点是它支持快速的查找、插入和删除操作,时间复杂度为O(log n)。
三、计算题1. 给定一个链表,编写一个算法来删除链表中的重复元素。
答案:以下是删除链表中重复元素的算法步骤:- 遍历链表,使用一个哈希表来记录已经遇到的元素。
- 当遍历到一个新元素时,检查它是否已经在哈希表中。
- 如果已经存在,删除当前节点,并继续遍历。
- 如果不存在,将元素添加到哈希表中,并继续遍历。
- 完成遍历后,链表中的重复元素将被删除。
2. 假设有一个二叉搜索树,编写一个算法来找到树中第k小的元素。
答案:以下是找到二叉搜索树中第k小元素的算法步骤:- 从根节点开始,使用中序遍历(左-根-右)。
- 遍历过程中,记录访问的节点数量。
- 当访问到第k个节点时,该节点即为所求的第k小的元素。
《数据结构》国开02272形考任务(1-4)试题答案合集

《数据结构》国开02272形考任务(1-4)试题答案合集数据结构国开02272形考任务(1-4)试题答案合集任务一:请简述数据结构的定义和作用。
数据结构是指数据元素之间的关系组成的结构,是一种组织和存储数据的方式。
它涉及到数据的存储、检索和操作等方面。
数据结构的作用在于提供了一种有效的方式来组织和管理数据,使得数据的访问和操作更加高效和方便。
任务二:请简述线性表的定义和特点。
线性表是一种数据结构,它是由一系列数据元素组成的有序序列。
线性表中的元素之间存在前后关系,每个元素只有一个前驱和一个后继,除了第一个元素没有前驱,最后一个元素没有后继。
线性表的特点包括元素之间存在顺序关系、元素的个数有限、元素类型可以相同或不同、元素可以重复。
任务三:请简述栈和队列的定义、特点和应用场景。
栈是一种具有特定操作约束的线性表,它只允许在表的一端进行插入和删除操作,这一端被称为栈顶。
栈的特点是后进先出(LIFO),即最后插入的元素最先被删除。
队列也是一种具有特定操作约束的线性表,它允许在表的一端进行插入操作,另一端进行删除操作,分别称为队尾和队头。
队列的特点是先进先出(FIFO),即最先插入的元素最先被删除。
栈和队列在计算机科学中有广泛的应用。
栈常用于表达式求值、函数调用、回溯等场景,而队列常用于任务调度、缓冲区管理、广度优先搜索等场景。
任务四:请简述链表和数组的定义、特点和应用场景。
链表是一种数据结构,它由一系列节点组成,每个节点包含一个数据元素和一个指向下一个节点的指针。
链表的特点是节点的内存分布不连续,每个节点可以动态分配空间,节点之间的连接通过指针来实现。
数组是一种数据结构,它由一系列元素按照一定的顺序排列而成。
数组的特点是元素的内存分布连续,每个元素占用相同大小的空间,可以通过索引来访问和操作元素。
链表和数组在数据存储和访问方面有不同的特点和应用场景。
链表适用于频繁插入和删除操作的场景,因为它可以动态分配内存并且插入和删除操作的时间复杂度为O(1)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据结构测验二一、单项选择题:1.任何一棵二叉树T,如果其终端结点数为no ,度为2的结点数为n2,则()。
A.no =n2+1 B. n2=n+1 C.n=2n2+1 D.n2=2n+12.设X是一棵树,x’是对应于X的二叉树,则X的后根遍历和x’的()遍历相同。
A.先序B.中序C.后序D.层次序3.深度为K的二叉树至多有()个结点。
A. 2kB. 2k–1C. 2k-1D. 2k-1 -1 4.将一棵有100个结点的完全二叉树从上到下,从左到右依次对结点进行编号,根结点的编号为1,则编号为49的结点的左孩子编号为()。
A.98 B.99 C.50 D.485.结点先序为XYZ的不同二叉树,那么它有()不同形态。
A.3 B.4 C.5 D.66.某二叉树的先序和后序序列正好相反,则该二叉树一定是()的二叉树。
A.空或只有一个结点B.高度等于其结点数C.任一结点无左孩子D.任一结点无右孩子7.树最适合用来表示()。
A.有序数据元素 B.无序数据元素C.元素之间无联系的数据D.元素之间有分支层次关系的数据8.二叉树在线索化后,仍不能有效求解的问题是()。
A.前序线索二叉树中求前序后继 B.中序线索二叉树中求中序后继C.中序线索二叉树中求中序前趋 D.后序线索二叉树中求后序后继9.判断线索二叉树中某结点p有左孩子的条件是()。
A.p!=null B.p->lchild!=nullC.p->ltag==Thread D.p->ltag==Link10.任何一棵二叉树的叶结点在先序、中序和后序遍历序列中的相对次序()。
A.发生改变 B.不发生改变C.不能确定 D.以上都不对11、任何一个无向连通图的最小生成树()。
A. 只有一棵B. 一棵或多棵C. 一定有多棵D. 可能不存在12.在一个无向图图中,所有顶点的度数之和等于图的边数的()倍。
A.l/2 B. 1 C.2 D. 4 13.有8个结点的无向图最多有()条边。
A.14 B.28 C.56 D.112 14.用邻接表表示图进行深度优先遍历时,通常采用()来实现算法的。
A.栈B.队列C.树D.图15、深度优先遍历类似于二叉树的()。
A. 先序遍历B. 中序遍历C. 后序遍历D. 层次遍历16、对于一个具有n个顶点的有向图,采用邻接矩阵表示该矩阵的大小是()。
A. nB. (n-1)2C. n-1D. n2二、判断题(认为正确在答题处写T,不正确写)1.n(n>2)个结点的二叉树中至少有一个度为2的结点。
2.在任何一棵完全二叉树中,终端结点或者与分支结点一样多,或者只比分支结点多一个。
3.二叉树的遍历只是为了在应用中找到一种线性次序4.二叉树的先序遍历序列“cctv”并不能唯一确定这棵树5.哈夫曼树中不存在度为1的结点6.如果表示某个图的邻接矩阵是不对称矩阵,则该图一定是有向图7.连通分量是无向图的极小连通子图8.连通图的广度优先搜索中一般要采用队列来存储刚访问过的顶点9.最小生成树是指边数最少的生成树。
10.任何有向无环图的结点都可以排成拓扑排序,拓扑序列不唯一三、简答题:1.已知权值:4,2,3,7,6,18,27请画出相应的哈夫曼树并计算其带权路径长度WPL(要求左孩子的权小于同一双亲右孩子的权)。
2.一棵二叉树的先序、中序和后序序列分别如下,其中一部分未给出,试求出空格处的内容,并画出二叉树的中序前驱线索。
先序:_B F_ICEH G中序:D_KFIA EJC_后序: K FBHJ G A3.已知图G如下所示,画出G的邻接矩阵和邻接表。
4.假定无向图G有6个结点和7条边,并依次输入这8条边为(A,B),(A,D),(A,E),(G,C),(B,E),(C,F),(D,E)。
试从顶点A出发,分别写出按深度优先搜索和广度优先搜索进行遍历的结点序列。
5.图G=(V,E),V={0,1,2,3,4,5},E={〈0,1〉},〈0,2〉,〈1,4〉,〈2,5〉,〈5,4〉,〈4,3〉,〈5,3〉}。
写出图G中顶点的所有拓扑排序。
6.设无向图G的邻接矩阵如下所示,画出用Prim算法得的最小生成树。
(从顶点0开始,写出计算过程)∞ 1 2 2 21 ∞ 3 ∞∞2 3 ∞ 5 ∞2 ∞ 5 ∞ 32 ∞∞3 ∞四、算法设计题目(先写出物理结构):1.写出二叉树的存储结构,并写出判断二叉树中结点p是否是结点q的祖先的算法。
2.写出图的深度优先遍历的算法答题纸学号: 姓名:题号 1 2 3 4 5 6 7 8 答题 A B B A C B D D 题号 9 10 11 12 13 14 15 16 答题DBBCBAAD题号 1 2 3 4 5 6 7 8 9 10 答题 ×T×TTT×T×T三、简答题:1.已知权值:4,2,3,7,6,18,27请画出相应的哈夫曼树并计算其带权路径长度WPL (要求左孩子的权小于同一双亲右孩子的权)。
(6)WPL=27*1+18*2+(4+6+7)*4+(2+3)*5=27+36+68+25=15623549671321183927662.一棵二叉树的先序、中序和后序序列分别如下,其中一部分未给出,试求出空格处的内容,并画出二叉树的中序前驱线索。
(8) 先序:A B D F K ICEH J G中序:D B KFIA H EJC G 后序:D K I FBHJ E G C A3.已知图G 如下所示,画出G 的邻接矩阵和邻接表(4)。
∞ 1 3 4 1 ∞ 5 2 3 5 ∞ 6 4 2 6 ∞4.假定无向图G 有7个结点和7条边,并依次输入这7条边为(A ,B ),(A ,D ),(A ,E ),(G ,C ),(B ,E ),(C ,F ),(D ,E )。
试从顶点A 出发,分别写出按深度优先搜索和广度优先搜索进行遍历的生成树。
(6)a cdb345261深度优先搜索广度优先搜索4.假定无向图G有6个结点和7条边,并依次输入这7条边为(A,B),(A,D),(A,E),(G,C),(B,D),(C,F),(D,G)。
试从顶点A出发,分别写出按深度优先搜索和广度优先搜索进行遍历的生成树。
深度优先搜索广度优先搜索5.图G=(V,E),V={0,1,2,3,4,5},E={〈0,1〉},〈0,2〉,〈1,4〉,〈2,5〉,〈5,4〉,〈4,3〉,〈5,3〉}。
写出图G中顶点的所有拓扑排序。
(6)0 1 2 5 4 30 2 1 5 4 30 2 5 1 4 36.设无向图G的邻接矩阵如下所示,画出用Prim算法得的最小生成树。
(从顶点0开始,写出计算过程)(10)∞ 1 2 2 21 ∞ 3 ∞∞2 3 ∞ 5 ∞2 ∞ 5 ∞ 32 ∞∞3 ∞7.最短工期是97最早开工时间是:四、算法设计题目:(10*2)1.写出二叉树的存储结构,并写出判断二叉树中结点p是否是结点q的祖先的算法。
//- - - - -二叉树的二叉链表存储表示- - - - -typedef struct BiTNode{ TElemType data;struct BiTNode *lchild, *rchild; //左右孩子指针} BiTNode, *BiTree;方法一:BiTree find(BiTree T,TElemType p){ if(T|| T->data==p) return T;s= find(T->lchild,p);if(s)return s;else return find(T->lchild,p);}}int panduan(BiTree T, TElemType p, TElemType q){ if(T){ s=find(T,p);if( s){ t=find(s,q);if(t) return OK;}}return ERROR;}2.写出图的深度优先遍历的算法(10分)int visited[MAX]; // 访问标志数组Status (* VisitFunc))(int v); // 函数指针变量void DFSTraverse(Graph G, Status(* Visit)(int v))// 对图G作深度优先遍历{VisitFunc = Visit;//使用全局变量VisitFunc,使DFS不必设函数指针参数for(v=0; v<G.vexnum; ++v)visited[v] = FALSE ;// 访问标志数组初始化for(v=0; v<G.vexnum; ++v )if(!visited[v]) DFS (G,v ); //对尚未访问的顶点调用DFS}void DFS(Graph G, int v)//从第v个顶点出发递归地深度优先遍历图G{visited[v]=TRUE;VistFunc(v); //访问第v个顶点for(w=FirstAdjVex(G,v);w>=0; w=NextAdjVex(G,v,w))if(!visited[w]) DFS(G,w);//对v的尚未访问的邻接顶点w递归调用DFS }。