华南理工大学数据结构课程习题集部分答案
- 格式:docx
- 大小:34.70 KB
- 文档页数:12
第 5 章数组和广义表一、选择题1.设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,a11为第一元素,其存储地址为1,每个元素占一个地址空间,则a85的地址为()。
【燕山大学 2001 一、2 (2分)】A. 13B. 33C. 18D. 402. 有一个二维数组A[1:6,0:7] 每个数组元素用相邻的6个字节存储,存储器按字节编址,那么这个数组的体积是(①)个字节。
假设存储数组元素A[1,0]的第一个字节的地址是0,则存储数组A的最后一个元素的第一个字节的地址是(②)。
若按行存储,则A[2,4]的第一个字节的地址是(③)。
若按列存储,则A[5,7]的第一个字节的地址是(④)。
就一般情况而言,当(⑤)时,按行存储的A[I,J]地址与按列存储的A[J,I]地址相等。
供选择的答案:【上海海运学院 1998 二、2 (5分)】①-④: A.12 B. 66 C. 72 D. 96 E. 114 F. 120G. 156 H. 234 I. 276 J. 282 K. 283 L. 288⑤: A.行与列的上界相同 B. 行与列的下界相同C. 行与列的上、下界都相同D. 行的元素个数与列的元素个数相同3. 设有数组A[i,j],数组的每个元素长度为3字节,i的值为1 到8 ,j的值为1 到10,数组从内存首地址BA开始顺序存放,当用以列为主存放时,元素A[5,8]的存储首地址为( )。
A. BA+141B. BA+180C. BA+222D. BA+225【南京理工大学 1997 一、8 (2分)】4. 假设以行序为主序存储二维数组A=array[1..100,1..100],设每个数据元素占2个存储单元,基地址为10,则LOC[5,5]=()。
【福州大学 1998 一、10 (2分)】A. 808B. 818C. 1010D. 10205. 数组A[0..5,0..6]的每个元素占五个字节,将其按列优先次序存储在起始地址为1000的内存单元中,则元素A[5,5]的地址是( )。
单元练习1一.判断题(下列各题,正确的请在前面的括号内打√;错误的打╳)(√)(1)数据的逻辑结构与数据元素本身的内容和形式无关.(√)(2)一个数据结构是由一个逻辑结构和这个逻辑结构上的一个基本运算集构成的整体。
(ㄨ)(3)数据元素是数据的最小单位.(ㄨ)(4)数据的逻辑结构和数据的存储结构是相同的.(ㄨ)(5)程序和算法原则上没有区别,所以在讨论数据结构时可以通用。
(√)(6)从逻辑关系上讲,数据结构主要分为线性结构和非线性结构两类.(√)(7)数据的存储结构是数据的逻辑结构的存储映像。
(√)(8)数据的物理结构是指数据在计算机内实际的存储形式.(ㄨ)(9)数据的逻辑结构是依赖于计算机的。
(√)(10)算法是对解题方法和步骤的描述。
二.填空题(1)数据有逻辑结构和存储结构两种结构.(2)数据逻辑结构除了集合以外,还包括:线性结构、树形结构和图形结构 .(3)数据结构按逻辑结构可分为两大类,它们是线性结构和非线性结构。
(4)树形结构和图形结构合称为非线性结构。
(5)在树形结构中,除了树根结点以外,其余每个结点只有 1 个前趋结点。
(6)在图形结构中,每个结点的前趋结点数和后续结点数可以任意多个 .(7)数据的存储结构又叫物理结构。
(8)数据的存储结构形式包括:顺序存储、链式存储、索引存储和散列存储。
(9)线性结构中的元素之间存在一对一的关系。
(10)树形结构结构中的元素之间存在一对多的关系,(11)图形结构的元素之间存在多对多的关系。
(12)数据结构主要研究数据的逻辑结构、存储结构和算法(或运算)三个方面的内容。
(13)数据结构被定义为(D,R),其中D是数据的有限集合,R是D上的关系的有限集合。
(14)算法是一个有穷指令的集合。
(15)算法效率的度量可以分为事先估算法和事后统计法。
(16)一个算法的时间复杂性是算法输入规模的函数。
(17)算法的空间复杂度是指该算法所耗费的存储空间,它是该算法求解问题规模n 的函数.(18)若一个算法中的语句频度之和为T(n)=6n+3nlog2n,则算法的时间复杂度为 O (nlog2n) 。
习题11.解释以下概念:逻辑结构,存储结构,操作,数据结构,数据结构的表示,数据结构的实现,抽象数据类型,算法,算法的时间代价,算法的空间代价,大O 表示法。
2.理解以下关系:算法与数据结构的关系;数据结构与抽象数据类型的关系;算法和数据结构与问题求解的关系。
3. 写出下列程序段的平均情况下的时间代价O表示式。
(1) a=b+c;d=a+e(2) sum=0;for (i=0;i<3;i++)for (j=0;j<n;j++)sum++;(3) x=n;y=0;while (x>=(y+1)*(y+1))y++;(4) s=0;if(even(n))for (i=0;i<n;i++)sum++;elses=s+n;(5) x=66;n=200;while (n>0){if(x>lO0){ x=x-10;n=n-1;}elsex=x+1;}4.对于给定的n个元素,可以构造出的逻辑结构有,,,四种。
5.按增长率由小到大的顺序排列下列各函数:2100, (32)n, (23)n, (43)n, n n, n32, n!, n, log2n, n/log2n习题22.1已知L是无头结点的单链表,且p结点既不是第一个结点,也不是最后一个结点,试从下列提供的语句中选出合适的语句序列:(1)在p结点之后插入s结点:(2)在p结点之前插入s结点:(3)在单链表L首插入s结点:(4)在单链表L后插入s结点:提供的语句:①p->next=s;②p->next=p->next->next;③p->next=s->next;④s->next=p->next;⑤s->next=L;⑥s->next=p;⑦s->next=NULL;⑧q=p;⑨while(p->next!=q)p=p->next;⑩while(p->next!=NULL)p=p->next;⑾p=q;⑿p=L;⒀L=s;⒁L=p;2.2已知p结点是某双向链表的中间结点,试从下列提供的语句中选出合适的语句序列。
第1章绪论一、选择题1. 算法的计算量的大小称为计算的()。
【北京邮电大学2000 二、3 (20/8分)】A.效率 B. 复杂性 C. 现实性 D. 难度2. 算法的时间复杂度取决于()【中科院计算所1998 二、1 (2分)】A.问题的规模 B. 待处理数据的初态 C. A和B3.计算机算法指的是(1),它必须具备(2)这三个特性。
(1) A.计算方法 B. 排序方法 C. 解决问题的步骤序列 D. 调度方法(2) A.可执行性、可移植性、可扩充性 B. 可执行性、确定性、有穷性C. 确定性、有穷性、稳定性D. 易读性、稳定性、安全性【南京理工大学1999 一、1(2分)【武汉交通科技大学1996 一、1(4分)】4.一个算法应该是()。
【中山大学1998 二、1(2分)】A.程序B.问题求解步骤的描述C.要满足五个基本特性D.A和C.5. 下面关于算法说法错误的是()【南京理工大学2000 一、1(1.5分)】A.算法最终必须由计算机程序实现B. 为解决某问题的算法同为该问题编写的程序含义是相同的C. 算法的可行性是指指令不能有二义性D. 以上几个都是错误的6. 下面说法错误的是()【南京理工大学2000 一、2 (1.5分)】(1)算法原地工作的含义是指不需要任何额外的辅助空间(2)在相同的规模n下,复杂度O(n)的算法在时间上总是优于复杂度O(2n)的算法(3)所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界(4)同一个算法,实现语言的级别越高,执行效率就越低A.(1) B.(1),(2) C.(1),(4) D.(3)7.从逻辑上可以把数据结构分为()两大类。
【武汉交通科技大学1996 一、4(2分)】A.动态结构、静态结构B.顺序结构、链式结构C.线性结构、非线性结构D.初等结构、构造型结构8.以下与数据的存储结构无关的术语是()。
【北方交通大学2000 二、1(2分)】A.循环队列 B. 链表 C. 哈希表 D. 栈9.以下数据结构中,哪一个是线性结构()?【北方交通大学2001 一、1(2分)】A.广义表 B. 二叉树 C. 稀疏矩阵 D. 串10.以下那一个术语与数据的存储结构无关?()【北方交通大学2001 一、2(2分)】A.栈 B. 哈希表 C. 线索树 D. 双向链表11.在下面的程序段中,对x的赋值语句的频度为()【北京工商大学2001 一、10(3分)】FOR i:=1 TO n DOFOR j:=1 TO n DOx:=x+1;A.O(2n) B.O(n) C.O(n2) D.O (log2n)12.程序段FOR i:=n-1 DOWNTO 1 DOFOR j:=1 TO i DOIF A[j]>A[j+1]THEN A[j]与A[j+1]对换;其中n为正整数,则最后一行的语句频度在最坏情况下是()A. O(n)B. O(nlogn)C. O(n3)D. O(n2) 【南京理工大学1998一、1(2分)】13.以下哪个数据结构不是多型数据类型()【中山大学1999 一、3(1分)】A.栈B.广义表C.有向图D.字符串14.以下数据结构中,()是非线性数据结构【中山大学1999 一、4】A.树B.字符串C.队D.栈15. 下列数据中,()是非线性数据结构。
数据结构课后习题标准答案————————————————————————————————作者:————————————————————————————————日期:7_1对于图题7.1(P235)的无向图,给出:(1)表示该图的邻接矩阵。
(2)表示该图的邻接表。
(3)图中每个顶点的度。
解:(1)邻接矩阵:0111000100110010010101110111010100100110010001110(2)邻接表:1:2----3----4----NULL;2: 1----4----5----NULL;3: 1----4----6----NULL;4: 1----2----3----5----6----7----NULL;5: 2----4----7----NULL;6: 3----4----7----NULL;7: 4----5----6----NULL;(3)图中每个顶点的度分别为:3,3,3,6,3,3,3。
7_2对于图题7.1的无向图,给出:(1)从顶点1出发,按深度优先搜索法遍历图时所得到的顶点序(2)从顶点1出发,按广度优先法搜索法遍历图时所得到的顶点序列。
(1)DFS法:存储结构:本题采用邻接表作为图的存储结构,邻接表中的各个链表的结点形式由类型L_NODE规定,而各个链表的头指针存放在数组head中。
数组e中的元素e[0],e[1],…..,e[m-1]给出图中的m条边,e中结点形式由类型E_NODE规定。
visit[i]数组用来表示顶点i是否被访问过。
遍历前置visit各元素为0,若顶点i被访问过,则置visit[i]为1.算法分析:首先访问出发顶点v.接着,选择一个与v相邻接且未被访问过的的顶点w访问之,再从w 开始进行深度优先搜索。
每当到达一个其所有相邻接的顶点都被访问过的顶点,就从最后访问的顶点开始,依次退回到尚有邻接顶点未曾访问过的顶点u,并从u开始进行深度优先搜索。
这个过程进行到所有顶点都被访问过,或从任何一个已访问过的顶点出发,再也无法到达未曾访问过的顶点,则搜索过程就结束。
第1章?????绪论一、选择题1.?算法的计算量的大小称为计算的(????)。
【北京邮电大学2000?二、3?(20/8分)】A.效率??????????B.?复杂性???????C.?现实性???????????D.?难度2.?算法的时间复杂度取决于()【中科院计算所?1998?二、1?(2分)】A.问题的规模??????B.?待处理数据的初态??????C. A和B3.计算机算法指的是(1),它必须具备(2)这三个特性。
(1) A.计算方法?????B.?排序方法????????C.?解决问题的步骤序列??????D.?调度方法(2) A.可执行性、可移植性、可扩充性????B.?可执行性、确定性、有穷性C.?确定性、有穷性、稳定性??????????D.?易读性、稳定性、安全性??????【南京理工大学?1999?一、1(2分)【武汉交通科技大学?1996?一、1(?4分)】4.一个算法应该是(?????)。
【中山大学?1998?二、1(2分)】?????A.程序?????B.问题求解步骤的描述?????C.要满足五个基本特性????????D.A和C.5.?下面关于算法说法错误的是(????)【南京理工大学?2000?一、1(1.5分)】A.算法最终必须由计算机程序实现B.?为解决某问题的算法同为该问题编写的程序含义是相同的C.?算法的可行性是指指令不能有二义性??????????D.?以上几个都是错误的6.?下面说法错误的是(????)【南京理工大学?2000?一、2?(1.5分)】????(1)算法原地工作的含义是指不需要任何额外的辅助空间???(2)在相同的规模n下,复杂度O(n)的算法在时间上总是优于复杂度O(2n)的算法???(3)所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界???(4)同一个算法,实现语言的级别越高,执行效率就越低?A.(1)??????B.(1),(2)????C.(1),(4)?????D.(3)7.从逻辑上可以把数据结构分为(????)两大类。
第十一章文件一、选择题1. 散列文件使用散列函数将记录的关键字值计算转化为记录的存放地址,因为散列函数是一对一的关系,则选择好的()方法是散列文件的关键。
【哈尔滨工业大学 2001二、5 (2分)】A. 散列函数B. 除余法中的质数C. 冲突处理D. 散列函数和冲突处理2. 顺序文件采用顺序结构实现文件的存储,对大型的顺序文件的少量修改,要求重新复制整个文件,代价很高,采用()的方法可降低所需的代价。
【北京邮电大学 2000 二、8 (20/8分)】A. 附加文件B. 按关键字大小排序C. 按记录输入先后排序D. 连续排序3. 用ISAM组织文件适合于()。
【中科院软件所 1998】A.磁带 B.磁盘4.下述文件中适合于磁带存储的是()。
【中科院计算所 2000 一、7(2分)】A. 顺序文件B. 索引文件C. 散列文件D. 多关键字文件5. 用ISAM和VSAM组织文件属于()。
A. 顺序文件B. 索引文件C. 散列文件【中国科技大学 1998 二、5(2分)中科院计算所 1998 二、5(2分)】6. ISAM文件和VASM文件属于()。
【山东大学 2001 二、5 (1分)】A. 索引非顺序文件B. 索引顺序文件C. 顺序文件D. 散列文件7. B+树应用在()文件系统中。
【北京邮电大学 2001 一、1(2分)】A. ISAMB. VSAM二、判断题1. 文件是记录的集合,每个记录由一个或多个数据项组成,因而一个文件可看作由多个记录组成的数据结构。
【长沙铁道学院 1998 一、5 (1分)】2. 倒排文件是对次关键字建立索引。
【南京航空航天大学 1997 一、10(1分)】3. 倒排序文件的优点是维护简单。
【南京航空航天大学 1995 五、10(1分)】4. 倒排文件与多重表文件的次关键字索引结构是不同的。
【西安交通大学 1996 二、6 (3分)】5. Hash表与Hash文件的唯一区别是Hash文件引入了‘桶’的概念。
一、选择题1. 算法的计算量的大小称为计算的(B )。
【北京邮电大学2000 二、3 (20/8分)】A.效率 B. 复杂性 C. 现实性 D. 难度2. 算法的时间复杂度取决于(C )【中科院计算所1998 二、1 (2分)】A.问题的规模 B. 待处理数据的初态 C. A和B3.计算机算法指的是(1),它必须具备(2)这三个特性。
(1) A.计算方法 B. 排序方法 C. 解决问题的步骤序列 D. 调度方法(2) A.可执行性、可移植性、可扩充性 B. 可执行性、确定性、有穷性C. 确定性、有穷性、稳定性D. 易读性、稳定性、安全性【南京理工大学1999 一、1(2分)【武汉交通科技大学1996 一、1(4分)】4.一个算法应该是()。
【中山大学1998 二、1(2分)】A.程序B.问题求解步骤的描述C.要满足五个基本特性D.A 和C.5. 下面关于算法说法错误的是()【南京理工大学2000 一、1(1.5分)】A.算法最终必须由计算机程序实现B.为解决某问题的算法同为该问题编写的程序含义是相同的C. 算法的可行性是指指令不能有二义性D. 以上几个都是错误的6. 下面说法错误的是()【南京理工大学2000 一、2 (1.5分)】(1)算法原地工作的含义是指不需要任何额外的辅助空间(2)在相同的规模n下,复杂度O(n)的算法在时间上总是优于复杂度O(2n)的算法(3)所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界(4)同一个算法,实现语言的级别越高,执行效率就越低A.(1) B.(1),(2) C.(1),(4) D.(3)7.从逻辑上可以把数据结构分为()两大类。
【武汉交通科技大学1996 一、4(2分)】A.动态结构、静态结构B.顺序结构、链式结构C.线性结构、非线性结构D.初等结构、构造型结构8.以下与数据的存储结构无关的术语是()。
【北方交通大学2000 二、1(2分)】A.循环队列 B. 链表 C. 哈希表 D. 栈9.以下数据结构中,哪一个是线性结构()?【北方交通大学2001 一、1(2分)】A.广义表 B. 二叉树 C. 稀疏矩阵 D. 串10.以下那一个术语与数据的存储结构无关?()【北方交通大学2001 一、2(2分)】A.栈 B. 哈希表 C. 线索树 D. 双向链表11.在下面的程序段中,对x的赋值语句的频度为()【北京工商大学2001 一、10(3分)】FOR i:=1 TO n DOFOR j:=1 TO n DOx:=x+1;A.O(2n) B.O(n) C.O(n2) D.O(log2n)12.程序段FOR i:=n-1 DOWNTO 1 DOFOR j:=1 TO i DOIF A[j]>A[j+1]THEN A[j]与A[j+1]对换;其中n为正整数,则最后一行的语句频度在最坏情况下是()A. O(n)B. O(nlogn)C. O(n3)D. O(n2) 【南京理工大学1998一、1(2分)】13.以下哪个数据结构不是多型数据类型()【中山大学1999 一、3(1分)】A.栈B.广义表C.有向图D.字符串14.以下数据结构中,()是非线性数据结构【中山大学1999 一、4】A.树B.字符串C.队D.栈15. 下列数据中,()是非线性数据结构。
数据结构课后习题答案-完整版下面是《数据结构课后习题答案-完整版》的内容:---第一章:数组1. 题目:给定一个整数数组,判断是否存在两个元素之和等于目标值。
答案:使用双指针法,首先将数组排序,然后设置左指针指向数组头部,右指针指向数组尾部。
如果左指针和右指针指向的元素之和小于目标值,则左指针右移;如果大于目标值,则右指针左移;如果等于目标值,则找到了两个元素之和等于目标值的情况。
2. 题目:给定一个整数数组和一个目标值,找出数组中和为目标值的两个数的下标。
答案:使用哈希表,在遍历数组的过程中,将每个元素的值和下标存储在哈希表中。
遍历到当前元素时,检查目标值与当前元素的差值是否在哈希表中,如果存在,则找到了两个数的下标。
---第二章:链表1. 题目:给定一个链表,判断链表中是否存在环。
答案:使用快慢指针法,定义两个指针,一个指针每次向前移动一个节点,另一个指针每次向前移动两个节点。
如果存在环,则两个指针必定会相遇。
2. 题目:给定一个链表,删除链表的倒数第N个节点。
答案:使用双指针法,定义两个指针,一个指针先移动N个节点,然后两个指针同时向前移动,直到第一个指针到达链表尾部。
此时第二个指针指向的节点即为要删除的节点。
---第三章:栈和队列1. 题目:设计一个栈,使得可以在常数时间内获取栈中的最小元素。
答案:使用辅助栈来保存当前栈中的最小元素。
每次压栈操作时,将当前元素与辅助栈的栈顶元素比较,只有当前元素较小才将其压入辅助栈。
2. 题目:设计一个队列,使得可以在常数时间内获取队列中的最大元素。
答案:使用双端队列来保存当前队列中的最大值。
每次入队操作时,将当前元素与双端队列的末尾元素比较,只有当前元素较大才将其压入双端队列。
---第四章:树和二叉树1. 题目:给定一个二叉树,判断它是否是平衡二叉树。
答案:通过递归遍历二叉树的每个节点,计算每个节点的左子树高度和右子树高度的差值。
如果任意节点的差值大于1,则该二叉树不是平衡二叉树。
数据结构课本习题答案数据结构第⼀章绪论⼀、单项选择题1、(1)A(2)B2、(1)B(2)D3、C4、A5、A6、(1)C(2)A7、(1)C(2)A8、C9、C 10、B 11、D⼆、填空题1、存储结构、算法2、⾮线性结构3、线性、树型、图形4、映射5、线性结构、树型结构、图形结构6、有穷性、确定性、可⾏性7、错误三、算法分析1、(1)O(n)、(2)O(n) 、(3)O(n)、(4)O(n)、(5)O(n)、(6)O(log3n)、(7) O(log2n)2、(1) order()函数是⼀个递归排序过程,设T(n)是排序n个元素所需要的时间。
在排序n个元素时,算法的计算时间主要花费在递归调⽤order()上。
第⼀调⽤时,处理的元素序列个数为n-1,也就是对余下的n-1个元素进⾏排序,所需要的计算时间应为T(n-1)。
⼜因为在其中的循环中,需要n-1次⽐较。
所以排序n个元素所需要的时间为:T(n)=T(n-1)+n-1 n﹥1据此可得:T(1)=0T(2)=T(1)+1=0+1=1T(n)=T(n-1)+n-1 n﹥1求解过程为:T(n)=[T(n-2)+(n-2)]+n-1=[T(n-3)+(n-3)]+(n-2)+n-1=…=(T(1)+1)+2+…+ n-1=0+1+2+…+ n-1=n(n-1)/2=O(n2)故order函数的时间复杂度为O(n2)(2)解:设fact(n)数是T(n)。
该函数中语句If (n≤1),return1;的运⾏时间是O(1),语句return(n*fact(n-1)); 运⾏时间是T(n-1)+O(1),其中O(1)为乘法运算的时间。
因此T(n)=O(1)n≤1T(n)= T(n-1)+O(1) n>1则T(n)=O(1)+T(n-1)=2*O(1)+T(n-2)=…=(n-1)*O(1)+T(1)=n*O(1)=O(n)即fact(n)的时间复杂度为O(n)。
《数据结构》课程习题集 第 1 页 (共 25 页) 一、. 选择题 . 1. 算法的计算量的大小称为计算的( B )。 A.效率 B. 复杂性 C. 现实性 D. 难度 .2. 算法的时间复杂度取决于( C ). A.问题的规模 B. 待处理数据的初态 C. A和B D. 难确定 .3. 下面关于算法说法错误的是( D ) A.算法最终必须由计算机程序实现 B.为解决某问题的算法同为该问题编写的程序含义是相同的 C. 算法的可行性是指指令不能有二义性 D. 以上几个都是错误的 .4.从逻辑上可以把数据结构分为( C )两大类。 A.动态结构、静态结构 B.顺序结构、链式结构 C.线性结构、非线性结构 D.初等结构、构造型结构 .5.以下数据结构中,哪一个是线性结构( D )? A.广义表 B. 二叉树 C. 稀疏矩阵 D. 串 .6.下述哪一条是顺序存储结构的优点?( A ) A.存储密度大 B.插入运算方便 C.删除运算方便 D.可方便地用于各种逻辑结构的存储表示 .7.下面关于线性表的叙述中,错误的是哪一个?( B ) A.线性表采用顺序存储,必须占用一片连续的存储单元。 B.线性表采用顺序存储,便于进行插入和删除操作。 C.线性表采用存储,不必占用一片连续的存储单元。 D.线性表采用存储,便于插入和删除操作。 .8.若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用( A )存储方式最节省时间。 A.顺序表 B.双链表 C.带头结点的双循环链表 D.单循环链表 .9.设一个链表最常用的操作是在末尾插入结点和删除尾结点,则选用( D )最节省时间。 A. 单链表 B.单循环链表 C. 带尾指针的单循环链表 D.带头结点的双循环链表 .10. 链表不具有的特点是( B ). A.插入、删除不需要移动元素 B.可随机访问任一元素 C.不必事先估计存储空间 D.所需空间与线性长度成正比 .11. 设一个栈的输入序列是 1,2,3,4,5,则下列序列中,是栈的合法输出序列的是( D )。 A. 5 1 2 3 4 B. 4 5 1 3 2 C. 4 3 1 2 5 D. 3 2 1 5 4 .12. 某堆栈的输入序列为a, b,c ,d,下面的四个序列中,不可能是它的输出序列的是( D )。 A. a,c,b,d B. b, c,d,a C. c, d,b, a D. d, c,a,b .13. 用方式存储的队列,在进行删除运算时( D )。 A. 仅修改头指针 B. 仅修改尾指针 C. 头、尾指针都要修改 D. 头、尾指针可能都要修改 .14. 用不带头结点的单链表存储队列时,其队头指针指向队头结点,其队尾指针指向队尾结点,则在进行删除操作时( D )。 A.仅修改队头指针 B. 仅修改队尾指针 C. 队头、队尾指针都要修改 D. 队头,队尾指针都可能要修改 .15.下面关于串的的叙述中,哪一个是不正确的?( B ) A.串是字符的有限序列 B.空串是由空格构成的串 C.模式匹配是串的一种重要运算 D.串既可以采用顺序存储,也可以采用链式存储 .16. 串是一种特殊的线性表,其特殊性体现在 ( B ) A.可以顺序存储 B.数据元素是一个字符 C.可以存储 D.数据元素可以是多个字符 .17.关于空串与空格串,下面说确的是( D )。 A.空串与空格串是相同的 B.空串与空格串长度是相同的 C.空格串中存放的都是空格 D.空串中存放的都是NULL . 18.图中有关路径的定义是( A )。 A.由顶点和相邻顶点序偶构成的边所形成的序列 B.由不同顶点所形成的序列 C.由不同边所形成的序列 D.上述定义都不是 .19.设无向图的顶点个数为n,则该图最多有( B )条边。 A.n-1 B.n(n-1)/2 C. n(n+1)/2 D.0 E.n2 .20.一个n个顶点的连通无向图,其边的个数至少为( A )。 A.n-1 B.n C.n+1 D.nlogn; .21.某排序方法的稳定性是指( D )。 A.该排序算法不允许有相同的关键字记录 B.该排序算法允许有相同的关键字记录 C.平均时间为0(n log n)的排序方法 D.以上都不对 22.如果只想得到1000个元素组成的序列中第5个最小元素之前的部分排序的序列,用( D )方法最快。 A.起泡排序 B.快速排列 C.Shell排序 D.堆排序 E.简单选择排序 .23.排序趟数与序列的原始状态有关的排序方法是( C )排序法。 A.插入 B. 选择 C. 冒泡 D. 都不是 24.下面给出的四种排序方法中,排序过程中的比较次数与排序方法无关的是。( A ) A.选择排序法 B. 插入排序法 C. 快速排序法 D. 都不是 25.对序列{15,9,7,8,20,-1,4}进行排序,进行一趟后数据的排列变为{4,9,-1,8,20,7,15};则采用的是( C )排序。 A. 选择 B. 快速 C. 希尔 D. 冒泡 26. 设树T的度为4,其中度为1,2,3和4的结点个数分别为4,2,1,1 则T中的叶子数为( D ) A.5 B.6 C.7 D.8 27.一棵完全二叉树上有1001个结点,其中叶子结点的个数是( E ) A. 250 B. 500 C.254 D.505 E.以上答案都不对 28. 有关二叉树下列说确的是( B ). A.二叉树的度为2 B.一棵二叉树的度可以小于2 C.二叉树中至少有一个结点的度为2 D.二叉树中任何一个结点的度都为2 .29.二叉树的第I层上最多含有结点数为( C ). A.2I B. 2I-1-1 C. 2I-1 D.2I -1 .30.对于有n 个结点的二叉树, 其高度为( C ). A.nlog2n B.log2n C.ëlog2nû|+1 D.不确定 .31.对二叉树的结点从1开始进行连续编号,要求每个结点的编号大于其左、右孩子的编号,同一结点的左右孩子中,其左孩子的编号小于其右孩子的编号,可采用( C )次序的遍历实现编号。 A.先序 B. 中序 C. 后序 D. 从根开始按层次遍历 .32. 对N个元素的表做顺序查找时,若查找每个元素的概率相同,则平均查找长度为( A ) A.(N+1)/2 B. N/2 C. N D. [(1+N)*N ]/2 .33. 对线性表进行二分查找时,要求线性表必须( B ) A.以顺序方式存储 B.以顺序方式存储,且数据元素有序 C.以方式存储 D.以方式存储,且数据元素有序 .34.当在一个有序的顺序存储表上查找一个数据时,即可用折半查找,也可用顺序查找,但前者比后者的查找速度( C ). A.必定快 B.不一定 C. 在大部分情况下要快 D. 取决于表递增还是递减 .35. 具有12个关键字的有序表,折半查找的平均查找长度( A ) . A. 3.1 B. 4 C. 2.5 D. 5 .36. 既希望较快的查找又便于线性表动态变化的查找方法是 ( C ) A.顺序查找 B. 折半查找 C. 索引顺序查找 D. 哈希法查找 二、填空题 .1. 对于长度为255的表,采用分块查找,每块的最佳长度为____16______。 .2. 顺序查找n个元素的顺序表,若查找成功,则比较关键字的次数最多为 __ n __次;当使用监视哨时,若查找失败,则比较关键字的次数为__n+1 __。 .3.在有序表A[1..12]中,采用二分查找算法查等于A[12]的元素,所比较的元素下标依次为__6.9.11.12____。 .4.. 在一棵二叉树中,第5层上的结点数最多为 16 个。 .5.、n(n>0)个结点构成的二叉树,叶结点最多floor((n+1)/2)个,最少有 1 个。若二叉树有m个叶结点,则度为2的结点有 m-1 个。 .6.二叉树中某一结点左子树的深度减去右子树的深度称为该结点的平衡因子。 .7. 假定一棵二叉树的结点数为18,则它的最小深度为 5 ,最大深度为 16 ; .8. 在一棵二叉树中,度为零的结点的个数为n 0,度为2的结点的个数为 n 2,则有n0= n 2 +1 。 .9. 现有按中序遍历二叉树的结果为abc,问有__5__种不同形态的二叉树可以得到这一遍历结果,这些二叉树分别是____。 .10.若不考虑基数排序,则在排序过程中,主要进行的两种基本操作是关键字的_比较_和记录的_移动_。 .11.直接插入排序用监视哨的作用是_免去查找过程中每一步都要检测整个表是否查找完毕,提高查找效率。 .12. 不受待排序初始序列的影响,时间复杂度为O(N2)的排序算法是_简单选择排序_,在排序算法的最后一趟开始之前,所有元素都可能不在其最终位置上的排序算法是_直接插入排序_。 .13.判断一个无向图是一棵树的条件是_n个定点,n-1条边的无向连通图。 .14.具有10个顶点的无向图,边的总数最多为_45_。 .15.若用n表示图中顶点数目,则有_______条边的无向图成为完全图。 .16.空格串是指_由空格字符所组成的字符串_,其长度等于_空格个数_。 .17.设T和P是两个给定的串,在T中寻找等于P的子串的过程称为_模式匹配,又称P为_模式串_。 .18.串的两种最基本的存储方式是_顺序储存_、_链式储存_;两个串相等的充分必要条件是_长度相等对应位置字符也相等 __。 .19. 已知链队列的头尾指针分别是f和r,则将值x入队的操作序列是s=(LinkedList)malloc(sizeof(LNode)); s->data=x;s->next=r->next;r->next=s;r=s;。 .20.向栈中压入元素的操作是_移动指针和插入。 .21.在具有n个单元的循环队列中,队满时共有_n-1_个元素。 .22.用S表示入栈操作,X表示出栈操作,若元素入栈的顺序为1234,为了得到1342出栈顺序,相应的S和X的操作串为_SXSSXSXX_。 .23. 单链表是_线性表_的存储表示。 .24. 在双链表中,每个结点有两个指针域,一个指向_前驱_,另一个指向_后继_。 .25.存储的特点是利用_指针_来表示数据元素之间的逻辑关系。 .26.顺序存储结构是通过_相邻位置_表示元素之间的关系的;链式存储结构是通过_指针_表示元素之间的关系的。 .27.线性表L=(a1,a2,…,an)用数组表示,假定删除表中任一元素的概率相同,则删除一个元素平均需要移动元素的个数是_(n-1)/2_。 .28.根据线性表的链式存储结构中每一个结点包含的指针个数,将线性链表分成_单链表_和_多重链表_;而又根据指针的连接方式,链表又可分成_动态链表_和_静态链表_。 .29.数据的物理结构包括_顺序储存_的表示和_链式储存_的表示。 .30.抽象数据类型的定义仅取决于它的一组_逻辑特性_,而与_在计算机部如何表示和实现_无关,即不论其部结构如何变化,只要它的_数学特性_不变,都不影响其外部使用。 .31.数据结构中评价算法的两个重要指标是 算法的时间复杂度和空间复杂度 .32. 数据结构是研讨数据的_逻辑结构 和_物理结构 ,以及它们之间的相互关系,并对与这种结构定义相应的 操作 ,设计出相应的 算法_。 三.程序填空题 .1. 已知单链表H为一个用带头结点的链表表示的线性表,如下算法是将其倒置。 请在下划线处填上正确的语句。 template void Line_ListLink::Reverse ( ) { Line_ListNode *p,*head=new Line_ListNode( );