数据结构123
数据结构(1,2,3章)课后题答案..

西北大学可视化技术研究所
1.3填空题: (1)变量的作用域是指 变量的有效范围 (2)抽象数据类型具有 数据抽象 、 信息隐 蔽 的特点。 (3)一种抽象类型包括 数据对象 、 结构 关系 和 基本操作 。
西北大学可视化技术研究所
(4)当需要用一个形式参数直接改变对应实参 的值时,该形式参数应说明为 指针类型 。 (5)数据结构的逻辑结构分为 集合结构 、 线性结构 、 树形结构 和 图结构 四种。 (6)数据结构的存储结构分为 顺序存储结构 和 链式存储结构 两种。
西北大学可视化技术研究所
(3)顺序表中,逻辑上相邻的元素,其物理位 置 也 相邻。在单链表中,逻辑上相邻的元 素,其物理位置 不一定 相邻。 (4)在带头结点的非空单链表中,头结点的存 储位置由 头指针 指示,首元素结点的存 储位置由 头结点的next域 指示,除首元素 结点外,其它任一元素结点的存储位置由 其 直接前驱的next域 指示。
8.假设两个按元素值递增有序排列的线性 表A和B,均以单链表作为存储结构,请 编写算法,将A表和B表归并成一个按元 素值递减有序排列的线性表C,并要求利 用原表(即A表和B表的)结点空间存放 表C。
西北大学可视化技术研究所
算法描述:要求利用现有的表A和B中的结 点空间来建立新表C,可通过更改结点的next 域来重新建立新的元素之间的线性关系。为保 证新表递减有序可以利用头插法建立单链表的 方法,只是新建表中的结点不用malloc,而只 需要从A和B中选择合适的点插入到新表C中即 可。
i
西北大学可视化技术研究所
第二步:计算结果
n n (1+i)i i2 i 2 i=1 i 1 2 i 1 2 n
1 2 2 1 2 (1 2 ... n ) (1 2 ... n) 2 2
数据结构第三章习题答案解析

第三章习题1.按图3.1(b)所示铁道(两侧铁道均为单向行驶道)进行车厢调度,回答:⑴如进站的车厢序列为123,则可能得到的出站车厢序列是什么?⑵如进站的车厢序列为123456,能否得到435612和135426的出站序列,并说明原因。
(即写出以“S”表示进栈、以“X”表示出栈的栈操作序列)。
2.设队列中有A、B、C、D、E这5个元素,其中队首元素为A。
如果对这个队列重复执行下列4步操作:(1)输出队首元素;(2)把队首元素值插入到队尾;(3)删除队首元素;(4)再次删除队首元素。
直到队列成为空队列为止,得到输出序列:(1)A、C、E、C、C (2) A、C、E(3) A、C、E、C、C、C (4) A、C、E、C3.给出栈的两种存储结构形式名称,在这两种栈的存储结构中如何判别栈空与栈满?4.按照四则运算加、减、乘、除和幂运算(↑)优先关系的惯例,画出对下列算术表达式求值时操作数栈和运算符栈的变化过程:A-B*C/D+E↑F5.试写一个算法,判断依次读入的一个以@为结束符的字母序列,是否为形如‘序列1& 序列2’模式的字符序列。
其中序列1和序列2中都不含字符’&’,且序列2是序列1的逆序列。
例如,‘a+b&b+a’是属该模式的字符序列,而‘1+3&3-1’则不是。
6.假设表达式由单字母变量和双目四则运算算符构成。
试写一个算法,将一个通常书写形式且书写正确的表达式转换为逆波兰式。
7.假设以带头结点的循环链表表示队列,并且只设一个指针指向队尾元素结点(注意不设头指针),试编写相应的队列初始化、入队列和出队列的算法。
8.要求循环队列不损失一个空间全部都能得到利用, 设置一个标志域tag , 以tag为0或1来区分头尾指针相同时的队列状态的空与满,请编写与此结构相应的入队与出队算法。
9.简述以下算法的功能(其中栈和队列的元素类型均为int):(1)void proc_1(Stack S){ int i, n, A[255];n=0;while(!EmptyStack(S)){n++; Pop(&S, &A[n]);}for(i=1; i<=n; i++)Push(&S, A[i]);}(2)void proc_2(Stack S, int e) { Stack T; int d;InitStack(&T);while(!EmptyStack(S)){ Pop(&S, &d);if (d!=e) Push( &T, d);}while(!EmptyStack(T)){ Pop(&T, &d);Push( &S, d);}}(3)void proc_3(Queue *Q){ Stack S; int d;InitStack(&S);while(!EmptyQueue(*Q)){DeleteQueue(Q, &d);Push( &S, d);}while(!EmptyStack(S)){ Pop(&S, &d);EnterQueue(Q,d)}}实习题1.回文判断。
软件技术数据结构部分习题解答

2.21 有一铁路交换站如题图(栈),火车从右边开进交换站,然后再开到左边,每节车厢均有编号如1,2,3,…,n。
请问:(1)当n=3和n=4时有哪几种排序方式?哪几种排序方式不可能发生?(2)当n=6时,325641这样的排列是否能发生?154623的排列是否能发生?N=3时可能的出栈序列:123 1S1X2S2X3S3X132 1S1X2S3S3X2X213 1S2S2X1X3S3X231 1S2S2X3S3X1X312 CAB321 1S2S3S3X2X1XN=4,不可能的排列:4312 4213 4231 4123 41323124 3142 341214232413N=6时,325641可能154623不可能2.22 CQ[0:10]为一循环队列,初态front=rear=1,画出下列操作后队的头、尾指示器状态:(1)d,e,b,g,h入队;(2)d,e出队;(3)i,j,k,l,m入队;(4)b出队;(5)n,o,p,q,r入队;0 1 2 3 4 5 6 7 8 9 10frontrear(1)d,e,b,g,h 入队0 1 2 3 4 5 6 7 8 9 10frontrear(2)d,e 出队0 1 2 34 5 6 7 8 9 10frontrear(3)i,j,k,l,m 入队0 1 2 3 4 5 6 7 8 9 10frontrear初态0 1 2 3 4 5 6 7 8 9 10front(4)b 出队0 1 2 3 4 5 6 7 8 9 10rear (5)n,o,p,q,r 入队2.23试画出表达式A*(B-D )/D+C**(E*F )执行过程中NS ,OS 栈的变化情况。
NSOSNSOSNSOSNSOSNSOSNSOSNSOS返回结果T62.28将下面的树转换成二叉树。
2.29 完全二叉树有1000个结点,问:叶子结点有多少?度为2的结点有多少?多少个结点只有非空的左子树?第一种做法:N1=0/1,N是奇→N1=0;N是偶→N1=1N=1000,N1=11000=N0+1+N2 1N0=N2+1 2N0=500,N2=499第二法:N=1000,29<N<210 →完全二叉的深度H=10第10层叶子结点数:N01=N-(29-1)=1000-511=489第10层总结点数:29 =512第10层空的结点数:512-489=23空结点数是奇数→N1=1第9层叶子结点数:N02=(23-1)/2=11总叶子结点数:N0=N01+N02=489+11=500N2=N-N0-N1=1000-500-1=499补充:度为3的树,1个度为1的结点,3个度为2的结点,4个度为3的结点,求叶子结点数?N=N0+N1+N2+N3=N0+1+3+4B=N-1=N1+2*N2+3*N3=1+2*3+3*4=19→N=20→N0=122.30 设一棵二叉树的中序遍历和后序遍历结果为:中序:B DCE A FHG后序:DECB HGF A求先序?ABCDEFGH2.32给定一组元素{17,28,36,54,30,27,94,15,21,83,40},画出由此生成的二叉排序树。
数据结构1-3习题

第1章绪论1.1选择题1. 算法的时间复杂度取决于()A)问题的规模B)待处理数据的初态C)A和B2.计算机算法指的是解决问题的步骤序列,它必须具备()这三个特性。
A)可执行性可移植性可扩充性B)可执行性、确定性、有穷性C)确定性、有穷性、稳定性D)易读性、稳定性、安全性5.从逻辑上可以把数据结构分为()两大类。
A)动态结构、静态结构B)顺序结构、链式结构C)线性结构、非线性结构D)初等结构、构造型结构6.在下面的程序段中,对x的赋值的语句频度为()for(i=0;i<n;i++)for(j=0;j<n;j++) x=x+1;A)O(2n) B)O(n) C.O(n2) D.O(log2n)7.下面的程序段中,n为正整数,则最后一行的语句频度在最坏情况下是()for(i=n-1;i>=1;i--)for(j=1;j<=i;j++)if (A[j]>A[j+1])A[j]与A[j+1]对换;A. O(n)B)O(nlog2n) C)O(n3) D)O(n2)1.2填空题2. 对于给定的n个元素,可以构造出的逻辑结构有_____________,_____________,_____________,_____________四种。
4.数据结构中评价算法的两个重要指标是_____________。
5. 数据结构是研讨数据的_____________和_____________,以及它们之间的相互关系,并对与这种结构定义相应的_____________,设计出相应的_____________。
6.一个算法具有5个特性:_____________、_____________、_____________,有零个或多个输入、有一个或多个输出。
9.已知如下程序段for(i=n;i>0;i--) {语句1}{ x=x+1; {语句2}for(j=n;j>=i;j--) {语句3}y=y+1; {语句4}}语句1执行的频度为_____________;语句2执行的频度为_____________;语句3执行的频度为_____________;语句4执行的频度为_____________。
数据结构(第二版)习题

第一章绪论一、问答题1.什么是数据结构?2.叙述四类基本数据结构的名称与含义。
3.叙述算法的定义与特性。
4.叙述算法的时间复杂度。
5.叙述数据类型的概念。
6. 叙述线性结构与非线性结构的差别。
7.叙述面向对象程序设计语言的特点。
8.在面向对象程序设计中,类的作用是什么?9.叙述参数传递的主要方式及特点。
10.叙述抽象数据类型的概念。
二、判断题(在各题后填写“√”或“×”)1.线性结构只能用顺序结构来存放,非线性结构只能用非顺序结构来存放。
()2.算法就是程序。
()3. 在高级语言(如C或PASCAL)中,指针类型是原子类型。
()三、计算下列程序段中X=X+1的语句频度for(i=1;i<=n;i++)for(j=1;j<=i;j++)for(k=1;k<=j;k++)x=x+1;四、试编写算法,求一元多项式Pn(x)=a0+a1x+a2x2+a3x3+…anxn的值Pn(x0),并确定算法中的每一语句的执行次数和整个算法的时间复杂度,要求时间复杂度尽可能小,规定算法中不能使用求幂函数。
注意:本题中的输入ai(i=0,1,…,n),x和n,输出为Pn(x0)。
通常算法的输入和输出可采用下列两种方式之一:(1)通过参数表中的参数显式传递。
(2)通过全局变量隐式传递。
试讨论这两种方法的优缺点,并在本题算法中以你认为较好的一种方式实现输入和输出。
第二章线性表2.1描述以下三个概念的区别:头指针,头结点,首元素结点。
2.2填空:(1)在顺序表中插入或删除一个元素,需要平均移动____元素,具体移动的元素个数与__插入或删除的位置__有关。
(2)在顺序表中,逻辑上相邻的元素,其物理位置______相邻。
在单链表中,逻辑上相邻的元素,其物理位置______相邻。
(3)在带头结点的非空单链表中,头结点的存储位置由______指示,首元素结点的存储位置由______指示,除首元素结点外,其它任一元素结点的存储位置由____指示。
数据结构基础知识要点

第一章数据结构1.定义数据结构是计算机存储、组织数据的方式.数据结构是抽象数据类型的物理实现.2.数据结构包括如下几个方面:(1)数据元素之间的逻辑关系,即数据的逻辑结构。
(2) 数据元素及其关系在计算机存储器中的存储方式,即数据的存储结构,也称为数据的物理结构。
(3) 施加在该数据上的操作,即数据的运算。
2。
逻辑结构类型(1)集合结构。
交通工具的集合,动物的集合(2) 线性结构。
一对一,综合素质测评产生的学生排名(3)树形结构。
一对多,单位的组织结构图,族谱(4)图形结构.多对多,生产流程、施工计划、网络建设图等3.存储结构类型(1) 顺序存储方法。
数组(2) 链式存储方法。
链表(3) 索引存储方法(4) 散列存储方法4.算法通常把具体存储结构上的操作实现步骤或过程称为算法。
C语言里通常表现为解决问题的步骤程序= 算法(加工数据)+ 数据结构(数据的存储和组织)5.算法的五个特征(1) 有穷性:在有穷步之后结束。
(2)确定性:无二义性.(3)可行性:可通过基本运算有限次执行来实现。
(4)有输入:可有零个或多个.(5)有输出:至少有一个输出。
6.算法分析(1)时间复杂度:(算法的工作量大小)通常把算法中包含基本运算次数的多少称为算法的时间复杂度,也就是说,一个算法的时间复杂度是指该算法的基本运算次数.算法中基本运算次数T(n)是问题规模n的某个函数f(n),记作:T(n)=O(f(n))(2) 空间复杂度:实现算法所需的存储单元多少第二章线性表1.线性表的基本概念线性表是具有相同特性的数据元素的一个有限序列.该序列中所含元素的个数叫做线性表的长度,用n 表示,n≥0。
2。
线性结构的基本特征为:(1) 集合中必存在唯一的一个“第一元素"; (2) 集合中必存在唯一的一个“最后元素”;(3) 除最后一个元素之外,均有唯一的后继(后件); (4) 除第一个元素之外,均有唯一的前驱(前件)。
数据结构——考试题库及答案

在线索化二叉树中,t 所指结点没有左子树的充要条件是________。
收藏 A. t->LTag==1 && t->lchild==NULL
B. t->LTag==1 C. 以上都不对 D. t->lchild==NULL
回答错误!正确答案: B
_______二叉排序树可得到一个关键字的有序序列。
收藏 A. 15 B. 12 C. 16 D. 11
回答错误!正确答案: A
非空的循环单链表(head 为头指针)的尾结点(由指针 p 所指示)应满足___ _____。
收藏 A. p->next==head;
B. p==NULL; C. v D. p->next==NULL;
回答错误!正确答案: A
收藏 A. 层序遍历 B. 先序遍历 C. 中序遍历 D. 后序遍
回答错误!正确答案: C
顺序表中第一个元素的起始存储地址为 100,每个元素的长度为 4,则第五个 元素的起始地址是_______。
收藏 A. 120
B. 124 C. 105 D. 116
回答错误!正确答案: D
线性表的顺序存储结构是一种________的存储结构。
收藏 A. (r+1) % m==f B. (f+1) % (m+1)==r C. (r+1) % (m+1)==f D. f==r
回答错误!正确答案: C
下列方法中,________是稳定的排序方法。
收藏 A. 快速排序 B. 折半插入排序 C. 希尔排序 D. 堆排序
回答错误!正确答案: B
在待排序的元素序列基本有序时,效率最高的排序方法是( )。
数据结构教程

第二部分数据结构概述数据结构是计算机专业基础课程之一,是十分重要的核心课程。
计算机的所有系统软件和应用软件都要用到各种类型的数据结构。
要想更好运用计算机来解决实际问题,仅仅学习计算机语言而缺乏数据结构知识是远远不够的,瑞士著名的计算机专家沃思(N.Writh)曾经说过:“算法+数据结构=程序”。
可见有了程序设计的基本知识,掌握了一种程序设计语言,并不一定就能设计出比较好的程序,解决比较复杂的实际问题,还必须掌握数据结构及算法设计的基本知识。
数据(Data)数据是信息的载体。
它能够被计算机识别、存储和加工处理,是计算机程序加工的"原料"。
随着计算机应用领域的扩大,数据的范畴包括:整数、实数、字符串、图像和声音等。
数据元素(Data Element)数据元素是数据的基本单位。
数据元素也称元素、结点、顶点、记录。
一个数据元素可以由若干个数据项(也称为字段、域、属性)组成。
数据项是具有独立含义的最小标识单位。
为了增加对数据结构的感性认识,下面举例来说明有关数据结构的概念。
【例1.1】学生成绩表,见下表。
注意:在表中指出数据元素、数据项、开始结点和终端结点等概念数据结构(Data Structure)数据结构指的是数据之间的相互关系,即数据的组织形式。
1.数据结构一般包括以下三方面内容:①数据元素之间的逻辑关系,也称数据的逻辑结构(Logical Structure);数据的逻辑结构是从逻辑关系上描述数据,与数据的存储无关,是独立于计算机的。
数据的逻辑结构可以看作是从具体问题抽象出来的数学模型。
②数据元素及其关系在计算机存储器内的表示,称为数据的存储结构(Storage Structure)数据的存储结构是逻辑结构用计算机语言的实现(亦称为映象),它依赖于计算机语言。
对机器语言而言,存储结构是具体的。
一般,只在高级语言的层次上讨论存储结构。
③数据的运算,即对数据施加的操作。
数据的运算定义在数据的逻辑结构上,每种逻辑结构都有一个运算的集合。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、选择题(1*25=25分)1.下面关于算法说法错误的是。
BA.算法最终必须由计算机程序实现 B.为解决某问题的算法同为该问题编写的程序含义是相同的C. 算法的可行性是指指令不能有二义性D. 以上几个都是错误的2.在下面的程序段中,对x的赋值语句的频度为。
CFOR i:=1 TO n DOFOR j:=1 TO n DOx:=x+1;A.O(2n) B.O(n) C.O(n2) D.O(log2n)3.下述哪一条是顺序存储结构的优点?。
AA.存储密度大B.插入运算方便C.删除运算方便D.可方便地用于各种逻辑结构的存储表示4.链表不具有的特点是。
BA.插入、删除不需要移动元素B.可随机访问任一元素C.不必事先估计存储空间D.所需空间与线性长度成正比5.对于一个头指针为head的带头结点的单链表,判定该表为空表的条件是。
BA.head==NULL B.head→next==NULL C.head→next==head D.head!=NULL 6.对于栈操作数据的原则是。
BA. 先进先出B. 后进先出C. 后进后出D. 不分顺序7.一个栈的输入序列为123…n,若输出序列的第一个元素是n,输出第i(1<=i<=n)个元素是。
BA.不确定B. n-i+1C. iD. n-i8.有六个元素6,5,4,3,2,1 的顺序进栈,问下列哪一个不是合法的出栈序列?C 。
A. 5 4 3 6 1 2B. 4 5 3 1 2 6C. 3 4 6 5 2 1D. 2 3 4 1 5 69.栈和队列的共同点是。
CA. 都是先进先出B. 都是先进后出C. 只允许在端点处插入和删除元素D. 没有共同点10.若串S=’software’,其子串的数目是。
BA.8 B.37 C.36 D.911.设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,a11为第一元素,其存储地址为1,每个元素占一个地址空间,则a85的地址为。
BA.13B. 33C. 18D. 4012.有一个100*90的稀疏矩阵,非0元素有10个,设每个整型数占2字节,则用三元组表示该矩阵时,所需的字节数是。
BA. 60B. 66C. 18000D. 3313.已知广义表LS=((a,b,c),(d,e,f)),运用head和tail函数取出LS中原子e的运算是。
CA. head(tail(LS))B. tail(head(LS))C. head(tail(head(tail(LS)))D. head(tail(tail(head(LS))))14.设森林F对应的二叉树为B,它有m个结点,B的根为p, p的右子树结点个数为n,森林F中第一棵树的结点个数是。
AA.m-n B.m-n-1 C.n+1 D.条件不足,无法确定15.若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是。
BA.9 B.11 C.15 D.不确定16.已知一棵二叉树的前序遍历结果为ABCDEF,中序遍历结果为CBAEDF,则后序遍历的结果为。
AA.CBEFDA B. FEDCBA C. CBEDFA D.不定17.引入二叉线索树的目的是。
AA.加快查找结点的前驱或后继的速度 B.为了能在二叉树中方便的进行插入与删除C.为了能方便的找到双亲 D.使二叉树的遍历结果唯一18.设无向图的顶点个数为n,则该图最多有条边。
BA.n-1 B.n(n-1)/2 C. n(n+1)/2 D.0 E.n219.下面结构中最适于表示稀疏无向图的是。
CA.邻接矩阵 B.邻接表 C.邻接多重表 D.十字链表20.无向图G=(V,E),其中:V={a,b,c,d,e,f}, E={(a,b),(a,e),(a,c),(b,e),(c,f),(f,d),(e,d)},对该图进行深度优先遍历,得到的顶点序列正确的是。
DA.a,b,e,c,d,f B.a,c,f,e,b,d C.a,e,b,c,f,d D.a,e,d,f,c,b 21.已知有向图G=(V,E),其中V={V1,V2,V3,V4,V5,V6,V7},E={<V1,V2>,<V1,V3>,<V1,V4>,<V2,V5>,<V3,V5>,<V3,V6>,<V4,V6>,<V5,V7>,<V6,V7>}, G的拓扑序列是。
AA.V1,V3,V4,V6,V2,V5,V7 B.V1,V3,V2,V6,V4,V5,V7C.V1,V3,V4,V5,V2,V6,V7 D.V1,V2,V5,V3,V4,V6,V722.适用于折半查找的表的存储方式及元素排列要求为。
DA.链接方式存储,元素无序 B.链接方式存储,元素有序C.顺序方式存储,元素无序 D.顺序方式存储,元素有序23.当采用分快查找时,数据的组织方式为。
BA.数据分成若干块,每块内数据有序B.数据分成若干块,每块内数据不必有序,但块间必须有序,每块内最大(或最小)的数据组成索引块C. 数据分成若干块,每块内数据有序,每块内最大(或最小)的数据组成索引块D. 数据分成若干块,每块(除最后一块外)中数据个数需相同24.假定有k个关键字互为同义词,若用线性探测法把这k个关键字存入散列表中,至少要进行多少次探测?。
DA.k-1次 B. k次 C. k+1次 D. k(k+1)/2次25.下列四个序列中,哪一个是堆。
CA. 75,65,30,15,25,45,20,10B. 75,65,45,10,30,25,20,15C. 75,45,65,30,15,25,20,10D. 75,45,65,10,25,30,20,15二、填空题(2*10=20分)1.在一个长度为n的顺序表中第i个元素(1<=i<=n)之前插入一个元素时,需向后移动个元素。
n-i+12.一个栈的输入序列是:1,2,3则不可能的栈输出序列是。
3 1 23. 设有一个顺序栈s ,元素1,2,3,4,5,6依次进栈,如果6个元素的出栈顺序为2,3,4,6,5,1,则顺序栈的容量至少应为 。
3 4. 知U=‘xyxyxyxxyxy ’;t=‘xxy ’;ASSIGN (S ,U );ASSIGN (V ,SUBSTR (S ,INDEX (s ,t ),LEN (t )+1)); ASSIGN (m ,‘ww ’)求REPLACE (S ,V ,m )= 。
’xyxyxywwy’5. 设有二维数组A[0..9,0..19],其每个元素占两个字节,第一个元素的存储地址为100,若按列优先顺序存储,则元素A[6,6]存储地址为 。
2326. 若以{4,5,6,7,8}作为叶子结点的权值构造哈夫曼树,则其带权路径长度是 。
69写出后序遍历该二叉树时访问结点的顺序。
HIDJKEBLFGCA8. 在有向图的邻接矩阵表示中,计算第I 个顶点入度的方法是 。
第I 列非零元素个数9. G 是一个非连通无向图,共有28条边,则该图至少有 个顶点。
910. 在各种查找方法中,平均查找长度与结点个数n 无关的查找方法是 。
散列查找三、简答题(7 + 8 + 10 + 10 = 35分)1. 用三元组表表示下列稀疏矩阵:(7分)2. 树和二叉树之间有什么样的区别与联系?(8分)3. 考虑右图:(1)从顶点A 出发,求它的深度优先生成树(2分) (2)从顶点E 出发,求它的广度优先生成树(2分) (3)根据普利姆(Prim) 算法,(6分) 求它的最小生成树(12分)四、算法实现题(2 * 10 = 20分)1.将两个非递减有序的有序表归并为非递增的有序表(利用原表结点)。
请将下面的程序补充完整。
void union( LinkList & Lc, LinkList & La,LinkList & Lb) { Lc = new LNode; Lc->next = NULL ;E ABGCDF536 141 325pa = La->next; pb = Lb->next; // 初始化// 归并delete La; delete Lb; // 释放La 和Lb的头结点} // union2.试写出直接插入排序的算法。
20 ~ 20学年第学期数据结构课程试卷标准答案及评分标准A( )/B() 卷专业班级注意:标题请用宋体4号,内容请用宋体5号。
五、选择题(1 * 25 = 25分)1~5 BCABB 6~10 BBCCB 11~15 BBCAB 16~20 AABCD 21~25 ADBDC六、填空题(2 * 10 = 20分)1.n-i+1 2.3 1 2 3.3 4.’xyxyxywwy’5.232 6.69 7.HIDJKEBLFGCA 8.第k列非零元素个数9.9 10.散列(hash)查找七、 简答题(7 + 8 + 10 + 10 = 35分)1.2.树和二叉树的区别有三:一是二叉树的度至多为2,树无此限制;(2分)二是二叉树有左右子树之分,即使在只有一个分枝的情况下, 也必须指出是左子树还是右子树,树无此限制;(2分)三是二叉树允许为空,树一般不允许为空(个别书上允许为空)。
(2分)树和二叉树逻辑上都是树形结构,二叉树不是树的特例。
(2分) 3.设该图用邻接表存储结构存储,顶点的邻接点按顶点编号升序排列(1)ABGFDEC (2)EACFBDG (3)((4分)关键路径是:活动与顶点的对照表:a1<α,A> a2<α,B> a3<α,C> a4<α,D> a5<A,E> a6<B,E> a7<B,W>a8<C,G> a9<C,F> a10<D,F> a11<E,G> a12<F,E> a13<F,W> a14<F,H> a15<G,W> a16<H,G> a17<H,W>,长52。
(2分)八、算法实现题(2 * 10 = 20分)1.○1// La 和Lb 均不空GetElem(La, i, ai);GetElem(Lb, j, bj);if(ai <= bj){ (2分)ListInsert(Lc, ++k, ai); ++i; (2分)}else{ListInsert(Lc, ++k, bj); ++j; (2分)}○2// 当La不空时GetElem(La, i++, ai);ListInsert(Lc, ++k, ai); (2分)○3// 当Lb不空时GetElem(Lb, j++, bj);ListInsert(Lc, ++k, bj); (2分)2./*直接插入排序算法*/void StrInsSort1(RecType R[],int n){∥本算法是利用监视哨对R[1..n]进行直接插入排序for(i = 2; i <= n; i++){ ∥假定第一个记录有序(2分) R[0] = R[i]; j = i - 1; ∥将待排序记录放进监视哨(2分)∥从后向前查找插入位置,将大于待排序记录向后移动while (R[0].key < R[j].key){ (2分)R[j + 1] = R[j];(1分)j--; ∥记录后移(1分)}∥whileR[j + 1] = R[0]; ∥将待排序记录放到合适位置(2分)}∥for}一、单项选择题(1*30=30分)1.数据结构在计算机内存中的表示是指()。