严蔚敏数据结构 (11)
- 格式:ppt
- 大小:1.09 MB
- 文档页数:27


数据结构习题集答案(C语言版严蔚敏)第2章线性表2.1 描述以下三个概念的区别:头指针,头结点,首元结点(第一个元素结点)。
解:头指针是指向链表中第一个结点的指针。
首元结点是指链表中存储第一个数据元素的结点。
头结点是在首元结点之前附设的一个结点,该结点不存储数据元素,其指针域指向首元结点,其作用主要是为了方便对链表的操作。
它可以对空表、非空表以及首元结点的操作进行统一处理。
2.2 填空题。
解:(1) 在顺序表中插入或删除一个元素,需要平均移动表中一半元素,具体移动的元素个数与元素在表中的位置有关。
(2) 顺序表中逻辑上相邻的元素的物理位置必定紧邻。
单链表中逻辑上相邻的元素的物理位置不一定紧邻。
(3) 在单链表中,除了首元结点外,任一结点的存储位置由其前驱结点的链域的值指示。
(4) 在单链表中设置头结点的作用是插入和删除首元结点时不用进行特殊处理。
2.3 在什么情况下用顺序表比链表好解:当线性表的数据元素在物理位置上是连续存储的时候,用顺序表比用链表好,其特点是可以进行随机存取。
2.4 对以下单链表分别执行下列各程序段,并画出结果示意图。
解:2.5 画出执行下列各行语句后各指针及链表的示意图。
L=(LinkList)malloc(sizeof(LNode)); P=L;for(i=1;i<=4;i++){P->next=(LinkList)malloc(sizeof(LNode));P=P->next; P->data=i*2-1;}P->next=NULL;for(i=4;i>=1;i--) Ins_LinkList(L,i+1,i*2);for(i=1;i<=3;i++) Del_LinkList(L,i);解:2.6 已知L是无表头结点的单链表,且P结点既不是首元结点,也不是尾元结点,试从下列提供的答案中选择合适的语句序列。
a. 在P结点后插入S结点的语句序列是__________________。
严蔚敏数据结构课后习题及答案解析数据结构是计算机科学中的重要基础课程,严蔚敏老师的《数据结构》教材更是被广泛使用。
对于学习者来说,课后习题的练习和答案解析对于巩固知识、加深理解至关重要。
下面我们就来详细探讨一些严蔚敏《数据结构》课后的典型习题及其答案解析。
首先,让我们来看一道关于线性表的习题。
习题:已知一个线性表(38,25,74,63,52,48),假定采用散列函数 H(Key) = Key mod 7 计算散列地址,并散列存储在散列表 A06中,采用线性探测法解决冲突。
试求出在等概率情况下查找成功的平均查找长度。
答案解析:首先计算每个元素的散列地址:38 mod 7 = 325 mod 7 = 474 mod 7 = 4 (冲突,线性探测到 A5)63 mod 7 = 052 mod 7 = 3 (冲突,线性探测到 A4)48 mod 7 = 6查找成功时,38 比较 1 次,25 比较 1 次,74 比较 2 次,63 比较 1 次,52 比较 2 次,48 比较 1 次。
平均查找长度=(1 + 1 + 2 + 1 + 2 + 1)/ 6 = 7 / 6接下来,看一道关于栈的习题。
习题:若进栈序列为 1,2,3,4,进栈过程中可以出栈,则可能得到的出栈序列有哪些?答案解析:出栈序列可能有多种情况。
比如:1、 1 进 1 出,2 进 2 出,3 进 3 出,4 进 4 出,得到序列 1 2 3 4 。
2、 1 进 1 出,2 进 3 进 3 出,2 出,4 进 4 出,得到序列 1 3 2 4 。
3、 1 进 1 出,2 进 2 出,3 进 4 进 4 出,3 出,得到序列 1 2 4 3 。
4、 1 进 2 进 2 出 1 出 3 进 3 出 4 进 4 出,得到序列 2 1 3 4 。
5、 1 进 2 进 2 出 3 进 3 出 1 出 4 进 4 出,得到序列 2 3 1 4 。
6、 1 进 2 进 2 出 3 进 4 进 4 出 3 出 1 出,得到序列 2 3 4 1 。
)。
第2章线性表1 .选择题(1)顺序表中 第一个 元素的存储 地址是100,每个元素的 长度为2,则第5个元素的 地址是( )。
A . 110 答案:B 解释:顺序表中的数据连续存储,所以第D . 120 5个元素的地址为: 100+2*4=108。
(3)向一个有127个元素的顺序表中插入一个新元素并保持原来顺序不变,平均要移 动的元素个数为( )。
C . 63 A . 8 B . 答案:B 解释:平均要移动的元素个数为: (4) 链接存储的存储结构所占存储空间(n/2。
)。
A .分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针 B .只有一部分,存放结点值C .只有一部分,存储表示结点间关系的指针D .分两部分,一部分存放结点值,另一部分存放结点所占单元数答案:A(5) 线性表若采用链式存储结构时,要求内存中可用存储单元的地址(A .必须是连续的C . 一定是不连续的答案:D(6) 线性表1在( B •部分地址必须是连续的D •连续或不连续都可以)情况下适用于使用链式结构实现。
B.需不断对L 进行删除插入 D.L 中结点结构复杂A .需经常修改L 中的结点值C . L中含有大量的结点答案:B解释:链表最大的优点在于插入和删除时不需要移动数据,直接修改指针即可。
(7) 单链表的存储密度( )。
A .大于1 B .等于1答案:C 解释:存储密度是指一个结点数据本身所占的存储空间和整个结点所占的存储空间之比,假设单链表一个结点本身所占的空间为 D ,指针域所占的空间为 N ,则存储密度为:D/(D+N),—定小于 1。
(8) 将两个各有 n 个元素的有序表归并成一个有序表,其最少的比较次数是(C •小于1D •不能确定 B . 2n-1 C . 2n D . n-1C . 100答案:A解释:当第一个有序表中所有的元素都小于(或大于)第二个表中的元素,只需 要用第二个表中的第一个元素依次与第一个表的元素比较,总计比较n 次。