数据结构习题及答案——严蔚敏(精品)

上传人:luoxia****01804 文档编号:65853113 上传时间:2019-01-02 格式:PDF 页数:54 大小:285.59KB
返回 下载 相关 举报
数据结构习题及答案——严蔚敏(精品)_第1页
第1页 / 共54页
数据结构习题及答案——严蔚敏(精品)_第2页
第2页 / 共54页
数据结构习题及答案——严蔚敏(精品)_第3页
第3页 / 共54页
数据结构习题及答案——严蔚敏(精品)_第4页
第4页 / 共54页
数据结构习题及答案——严蔚敏(精品)_第5页
第5页 / 共54页
点击查看更多>>
资源描述

《数据结构习题及答案——严蔚敏(精品)》由会员分享,可在线阅读,更多相关《数据结构习题及答案——严蔚敏(精品)(54页珍藏版)》请在金锄头文库上搜索。

1、 第 一 章第 一 章 绪 论绪 论 一 、 选 择题一 、 选 择题 1.组成数据的基本单位是( ) (A)数据项(B)数据类型(C)数据元素(D)数据变量 2.数据结构是研究数据的( )以及它们之间的相互关系。 (A)理想结构,物理结构 (B)理想结构,抽象结构 (C)物理结构,逻辑结构 (D)抽象结构,逻辑结构 3.在数据结构中,从逻辑上可以把数据结构分成( ) (A)动态结构和静态结构 (B)紧凑结构和非紧凑结构 (C)线性结构和非线性结构(D)内部结构和外部结构 4.数据结构是一门研究非数值计算的程序设计问题中计算机的 ()以及它们之间的() 和运算等的学科。 (A)数据元素(B)计

2、算方法(C)逻辑存储(D)数据映像 (A)结构 (B)关系 (C)运算 (D)算法 5.算法分析的目的是()。 (A) 找出数据结构的合理性 (B)研究算法中的输入和输出的关系 (C)分析算法的效率以求改进(D)分析算法的易懂性和文档性 6.计算机算法指的是(),它必须具备输入、输出和()等 5 个特性。 (A)计算方法(B)排序方法(C)解决问题的有限运算序列(D)调度方法 (A)可执行性、可移植性和可扩充性(B)可行性、确定性和有穷性 (C)确定性、有穷性和稳定性 (D)易读性、稳定性和安全性 二、判 断 题判 断 题 1.数据的机内表示称为数据的存储结构。( ) 2.算法就是程序。( )

3、 3.数据元素是数据的最小单位。( ) 4.算法的五个特性为:有穷性、输入、输出、完成性和确定性。( ) 5.算法的时间复杂度取决于问题的规模和待处理数据的初态。( ) 三 、 填 空题三 、 填 空题 1.数据逻辑结构包括_、_、_ 和_四种类型,其中树形结构 和图形结构合称为_。 2.在线性结构中,第一个结点_前驱结点,其余每个结点有且只有_个前驱结点;最后 一个结点_后续结点,其余每个结点有且只有_个后续结点。 3.在树形结构中,树根结点没有_结点,其余每个结点有且只有_个前驱结点;叶 子结点没有_结点,其余每个结点的后续结点可以_。 4.在图形结构中,每个结点的前驱结点数和后续结点数可

4、以_。 5.线性结构中元素之间存在_关系,树形结构中元素之间存在_关系,图形结构中 元素之间存在_关系。 6.算法的五个重要特性是_、_、_、_、_。 7.数据结构的三要素是指_、_和_。 8.链式存储结构与顺序存储结构相比较,主要优点是_。 9.设有一批数据元素,为了最快的存储某元素,数据结构宜用_结构,为了方便插入一 个元素,数据结构宜用_结构。 四 、四 、 算 法分析题算 法分析题 1.求下列算法段的语句频度及时间复杂度 参 考 答 案:参 考 答 案: 一 、 选 择题一 、 选 择题 1. C 2.C 3. C 4. A、B 5. C 6.C、B 二、判 断 题判 断 题 : 1、

5、 2、 3、 4、 5、 三 、 填 空题三 、 填 空题 1、线性、树形、图形、集合? ;非线性(网状) 2、没有;1;没有;1 3、前驱;1;后继; 任意多个 4、任意多个 5、一对一;一对多;多对多 6、有穷性;确定性;可行性;输入; 输出 7、数据元素;逻辑结构;存储结构 8、插入、删除、合并等操作较方便 9、顺序存储; 链式存储 四 、 算 法分析题四 、 算 法分析题 for(i=1; inext=p;p-next=s; (B) s-next=p-next;p-next=s; (C)s-next=p-next;p=s; (D)p-next=s;s-next=p; 5.在一个单链表中

6、,若删除 p 所指结点的后续结点,则执行( ) (A)p-next=p-next-next; (B)p=p-next; p-next=p-next-next; (C)p-next=p-next; (D)p =p-next-next; 6.下列有关线性表的叙述中,正确的是( ) (A)线性表中的元素之间隔是线性关系 (B)线性表中至少有一个元素 (C)线性表中任何一个元素有且仅有一个直接前趋 (D)线性表中任何一个元素有且仅有一个直接后继 7.线性表是具有 n 个( )的有限序列(n0) (A)表元素 (B)字符 (C)数据元素 (D)数据项 二 、 判 断题二 、 判 断题 1.线性表的链接存

7、储,表中元素的逻辑顺序与物理顺序一定相同。( ) 2.如果没有提供指针类型的语言,就无法构造链式结构。( ) 3.线性结构的特点是只有一个结点没有前驱,只有一个结点没有后继,其余的结点只有一个 前驱和后继。( ) 4.语句 p=p-next 完成了指针赋值并使 p 指针得到了 p 指针所指后继结点的数据域值。( ) 5.要想删除 p 指针的后继结点,我们应该执行 q=p-next ; p-next=q-next; free(q)。 ( ) 三、填 空 题填 空 题 1.已知 P 为单链表中的非首尾结点,在 P 结点后插入 S 结点的语句为: _ 。 2.顺序表中逻辑上相邻的元素物理位置( )相

8、邻, 单链表中逻辑上相邻的元素物理位置 _相邻。 3.线性表 L(a1,a2,.,an)采用顺序存储,假定在不同的 n1 个位置上插入的概率 相同,则插入一个新元素平均需要移动的元素个数是_ 4.在非空双向循环链表中,在结点 q 的前面插入结点 p 的过程如下: p-prior=q-prior; q-prior-next=p; p-next=q; _; 5.已知 L 是无表头结点的单链表,是从下列提供的答案中选择合适的语句序列,分别实现: (1)表尾插入 s 结点的语句序列是_ (2) 表尾插入 s 结点的语句序列是_ 1. p-next=s; 2. p=L; 3. L=s; 4. p-nex

9、t=s-next; 5. s-next=p-next; 6. s-next=L; 7. s-next=null; 8. while(p-next!= Q)? p=p-next; 9. while(p-next!=null) p=p-next; 四四 、算 法 设计题算 法 设计题 1.试编写一个求已知单链表的数据域的平均值的函数(数据域数据类型为整型)。 2.已知带有头结点的循环链表中头指针为 head,试写出删除并释放数据域值为 x 的所有结点 的 c 函数。 3.某百货公司仓库中有一批电视机,按其价格从低到高的次序构成一个循环链表,每个结点 有价格、数量和链指针三个域。现出库(销售)m 台

10、价格为 h 的电视机,试编写算法修改原 链表。 4.某百货公司仓库中有一批电视机,按其价格从低到高的次序构成一个循环链表,每个结点 有价格、数量和链指针三个域。现新到 m 台价格为 h 的电视机,试编写算法修改原链表。 5.线性表中的元素值按递增有序排列,针对顺序表和循环链表两种不同的存储方式,分别编 写 C 函数删除线性表中值介于 a 与 b(ab)之间的元素。 6.设 A=(a0,a1,a2,.,an-1),B=(b0,b1,b2,.,bm-1)是两个给定的线性表,它们的结点个数 分别是 n 和 m,且结点值均是整数。 若 n=m,且 ai= bi (0iB。 试编写一个比较 A 和 B

11、的 C 函数,该函数返回 -1 或 0 或 1,分别表示 AB。 7.试编写算法,删除双向循环链表中第 k 个结点。 8.线性表由前后两部分性质不同的元素组成(a0,a1,.,an-1,b0,b1,.,bm-1),m 和 n 为两 部分元素的个数,若线性表分别采用数组和链表两种方式存储,编写算法将两部分元素换位成 (b0,b1,.,bm-1,a0,a1,.,an-1),分析两种存储方式下算法的时间和空间复杂度。 9.用循环链表作线性表(a0,a1,.,an-1)和(b0,b1,.,bm-1)的存储结构,头指针分别为 ah 和 bh,设计 C 函数,把两个线性表合并成形如(a0,b0,a1,b1

12、,)的线性表,要求不开辟 新的动态空间,利用原来循环链表的结点完成合并操作,结构仍为循环链表,头指针为 head,并 分析算法的时间复杂度。 10.试写出将一个线性表分解为两个带有头结点的循环链表, 并将两个循环链表的长度放在各 自的头结点的数据域中的 C 函数。 其中,线性表中序号为偶数的元素分解到第一个循环链表中, 序号为奇数的元素分解到第二个循环链表中。 11.试写出把线性链表改为循环链表的 C 函数。 12.己知非空线性链表中 x 结点的直接前驱结点为 y,试写出删除 x 结点的 C 函数。 参 考 答 案:参 考 答 案: 一 、 选 择题一 、 选 择题 1. B 2.C 3. D

13、 4. B 5. A 6.A 7、C 二、判 断 题判 断 题 : 参考答案:1、2、3、4、5、 三 、 填 空题三 、 填 空题 1、s-next=p-next; p-next=s; 2、一定;不一定 3、n/2 4、q-prior=p; 5、(1)6) 3) (2) 2) 9)1) 7) 四 、 算 法设计题四 、 算 法设计题 1、 #include “stdio.h“ #include “malloc.h“ typedef struct node int data; struct node *link; NODE; int aver(NODE *head) int i=0,sum=0

14、,ave; NODE *p; p=head; while(p!=NULL) p=p-link;+i; sum=sum+p-data; ave=sum/i; return (ave); 2、 #include “stdio.h“ #include “malloc.h“ typedef struct node int data; /* 假设数据域为整型 */ struct node *link; NODE; void del_link(NODE *head,int x) /* 删除数据域为 x 的结点*/ NODE *p,*q,*s; p=head; q=head-link; while(q!=h

15、ead) if(q-data=x) p-link=q-link; s=q; q=q-link; free(s); else p=q; q=q-link; 3、 void del(NODE *head,float price,int num) NODE *p,*q,*s; p=head;q=head-next; while(q-pricenext; if(q-price=price) q-num=q-num-num; else printf(“无此产品“); if(q-num=0) p-next=q-next; free(q); 4、 #include “stdio.h“ #include “malloc.h“ t

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号