数据结构习题11级用.docx

上传人:b****4 文档编号:11961651 上传时间:2023-04-16 格式:DOCX 页数:25 大小:32.69KB
下载 相关 举报
数据结构习题11级用.docx_第1页
第1页 / 共25页
数据结构习题11级用.docx_第2页
第2页 / 共25页
数据结构习题11级用.docx_第3页
第3页 / 共25页
数据结构习题11级用.docx_第4页
第4页 / 共25页
数据结构习题11级用.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

数据结构习题11级用.docx

《数据结构习题11级用.docx》由会员分享,可在线阅读,更多相关《数据结构习题11级用.docx(25页珍藏版)》请在冰豆网上搜索。

数据结构习题11级用.docx

数据结构习题11级用

数据结构习题11级用

数据结构习题

计算机学院专业基础教研室

xx年12月

1

前  言

数据结构是计算机相关专业教学计划中的一门核心课程,是有志从事计算机与技术工作的人员的一门重要的专业基础课程。

计算机相关学科各领域都要用到各种数据结构,要从事这些领域的工作,尤其是计算机应用领域的开发研制工作,必须具备良好的数据结构基础。

数据结构课程的教学要求是学会分析研究计算机加工的数据对象的特征,以便在实际应用中选择适当的数据结构、存储结构和相应的算法,初步掌握算法的时间与空间性能分析技巧,得到复杂程序设计的训练。

我们在认真总结多年教学经验和体会的基础上,结合新时期大学生的学习特点和要求,编写了这本《数据结构习题》,作为数据结构课程学习的配套教材,以希望通过习题的求解,使学生更好地学习和掌握课程内容,理解和掌握算法设计所需的方法和技术,为整个专业学习打下良好的基础。

于时间仓促和编者水平所限,本书一定还存在着许多问题,敬请广大读者批评指正。

2

目录

第一章绪论1第二章线性表6第三章栈和队列12第四章串‥19第五章数组和广义表‥22第六章树和二叉树‥‥28第七章图‥33第九章查找‥38第十章内部排序41

 

3

第一章  绪论

一、选择题

1.算法的计算量的大小称为计算的。

A.效率  B.复杂性  C.现实性  D.难度2.算法的时间复杂度取决于

A.问题的规模  B.待处理数据的初态  C.A和B3.计算机算法指的是,它必须具备这三个特性。

(1)A.计算方法  B.排序方法

C.解决问题的步骤序列  D.调度方法

(2)A.可执行性、可移植性、可扩充性  B.可执行性、确定性、有穷性

C.确定性、有穷性、稳定性  D.易读性、稳定性、安全性

4.一个算法应该是。

A.程序  B.问题求解步骤的描述C.要满足五个基本特性D.A和C.5.下面关于算法说法错误的是

A.算法最终必须计算机程序实现

B.为解决某问题的算法同为该问题编写的程序含义是相同的C.算法的可行性是指指令不能有二义性  D.以上几个都是错误的6.下面说法错误的是

(1)算法原地工作的含义是指不需要任何额外的辅助空间

在相同的规模n下,复杂度O(n)的算法在时间上总是优于复杂度O(2n)的算

所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界  同一个算法,实现语言的级别越高,执行效率就越低  A.

(1)  B.

(1),

(2)  C.

(1),(4)  D.(3)7.从逻辑上可以把数据结构分为两大类。

A.动态结构、静态结构  B.顺序结构、链式结构C.线性结构、非线性结构  D.初等结构、构造型结构8.以下与数据的存储结构无关的术语是。

A.循环队列  B.链表  C.哈希表  D.栈9.以下数据结构中,哪一个是线性结构?

A.广义表  B.二叉树  C.稀疏矩阵  D.串10.以下那一个术语与数据的存储结构无关?

1

A.栈  B.哈希表  C.线索树  D.双向链表11.线性表若采用链式存储结构时,要求内存中可用存储单元的地址。

  A.必须是连续的  B.部分地址必须是连续的  C.一定是不连续的D.连续或不连续都可以12.在以下的叙述中,正确的是。

A.线性表的线性存储结构优于链表存储结构  B.二维数组是其数据元素为线性表的线性表  C.栈的操作方式是先进先出  D.队列的操作方式是先进后出

13.以下哪个数据结构不是多型数据类型

A.栈  B.广义表  C.有向图  D.字符串14.以下数据结构中,是非线性数据结构

A.树  B.字符串  C.队  D.栈15.下列数据中,是非线性数据结构。

A.栈  B.队列  C.完全二叉树  D.堆16.连续存储设计时,存储单元的地址。

A.一定连续B.一定不连续C.不一定连续D.部分连续,部分不连续17.以下属于逻辑结构的是。

A.顺序表  B.哈希表  C.有序表  D.单链表18.一个数据对象是的集合。

A.相同类型的数据项  B.相同类型的数据元素

C.不同类型的数据项  D.不同类型的数据元素19.()是数据的基本单位。

A.数据项  B.关键字C.数据元素D.数据类型20.数据结构在计算机中的表示称为数据(  )。

  A.对象  B.的存储结构  C.类型  D.元素21.下列程序段的时间复杂度为(  )。

  {for(i=0;i(5)  (5+n)  (n5)  (n)

22.数据结构是一门研究非数值计算的程序设计问题中计算机的以及它们之间

2

的和运算等的学科。

①A.操作对象B.计算方法C.逻辑存储  D.数据映象②A.结构  B.关系  C.运算  D.算法

23.数据结构被形式地定义为,其中K是的有限集合,R是K上的

的有限集合。

①A.算法  B.数据元素  C.数据操作  D.逻辑结构②A.操作  B.映象  C.存储  D.关系24.在数据结构中,从逻辑上可以把数据结构分成。

  A.动态结构和静态结构  B.紧凑结构和非紧凑结构  C.线性结构和非线性结构  D.内部结构和外部结构

25.线性表的顺序存储结构是一种的存储结构,线性表的链式存储结构是一种  的存储结构。

A.随机存取  B.顺序存取  C.索引存取  D.散列存取26.算法分析的目的是,算法分析的两个主要方面是。

  ①A.找出数据结构的合理性

B.研究算法中的输入和输出的关系  C.分析算法的效率以求改进  D.分析算法的易懂性和文档性  ②A.空间复杂性和时间复杂性  B.正确性和简明性  C.可读性和文档性

D.数据复杂性和程序复杂性

27.计算机算法指的是,它必具备输入、输出和等五个特性。

①A.计算方法   B.排序方法  C.解决问题的有限运算序列  D.调度方法②A.可行性、可移植性和可扩充性  B.可行性、确定性和有穷性  C.确定性、有穷性和稳定性  D.易读性、稳定性和安全性

28.线性表的逻辑顺序与存储顺序总是一致的,这种说法。

  A.正确  B.不正确

二、填空题

1.数据的物理结构包括  的表示和  的表示。

3

2.对于给定的n个元素,可以构造出的逻辑结构有  ,  ,  ,

__四种。

3.数据的逻辑结构是指  。

4.一个数据结构在计算机中  称为存储结构。

5.抽象数据类型的定义仅取决于它的一组___,而与__无关,即不论其内

部结构如何变化,只要它的__不变,都不影响其外部使用。

6.数据结构中评价算法的两个重要指标是

7.数据结构是研讨数据的__和__,以及它们之间的相互关系,并对与这

种结构定义相应的__,设计出相应的_。

8.一个算法具有5个特性:

、、,有零个或多个输入、有一

个或多个输出。

9.下面程序段的时间复杂度为________。

(n>1)  sum=1;

for(i=0;sum10.计算机执行下面的语句时,语句s的执行次数为_______。

  FOR(i=l;i=i;j--)  s;

11.下面程序段中带下划线的语句的执行次数的数量级是:

  

i:

=1;WHILEi三、基础知识题

1.数据结构是一门研究什么内容的学科?

2.数据元素之间的关系在计算机中有几种表示方法?

各有什么特点?

3.数据类型和抽象数据类型是如何定义的。

二者有何相同和不同之处,抽象数据类

型的主要特点是什么?

使用抽象数据类型的主要好处是什么?

4.回答问题

在数据结构课程中,数据的逻辑结构,数据的存储结构及数据的运算之间存

在着怎样的关系?

若逻辑结构相同但存储结构不同,则为不同的数据结构。

这样的说法对吗?

举例说明之。

在给定的逻辑结构及其存储表示上可以定义不同的运算集合,从而得到不同

的数据结构。

这样说法对吗?

举例说明之。

评价各种不同数据结构的标准是什么?

4

5.评价一个好的算法,您是从哪几方面来考虑的?

6.解释和比较以下各组概念抽象数据类型及数据类型数据结构、逻辑结构、存储结构抽象数据类型

算法的时间复杂性算法频度

7.根据数据元素之间的逻辑关系,一般有哪几类基本的数据结构?

8.对于一个数据结构,一般包括哪三个方面的讨论?

9.当你为解决某一问题而选择数据结构时,应从哪些方面考虑?

10.若将数据结构定义为一个二元组,说明符号D,R应分别表示什么?

11.数据结构与数据类型有什么区别?

12.数据的存储结构哪四种基本的存储方法实现?

13.若有100个学生,每个学生有学号,姓名,平均成绩,采用什么样的数据结构最

方便,写出这些结构?

14.运算是数据结构的一个重要方面。

试举一例,说明两个数据结构的逻辑结构和存

储方式完全相同,只是对于运算的定义不同。

因而两个结构具有显著不同的特性,是两个不同的结构。

15.在编制管理通讯录的程序时,什么样的数据结构合适?

为什么?

16.试举一例,说明对相同的逻辑结构,同一种运算在不同的存储方式下实现,其运

算效率不同。

17.有实现同一功能的两个算法A1和A2,其中A1的时间复杂度为Tl=O

(2),A2的

时间复杂度为T2=O(n2),仅就时间复杂度而言,请具体分析这两个算法哪一个好。

18.设计一数据结构,用来表示某一银行储户的基本信息:

账号、姓名、开户年月

日、储蓄类型、存入累加数、利息、帐面总数。

5

n

第二章线性表

一、选择题

1.下述哪一条是顺序存储结构的优点?

A.存储密度大  B.插入运算方便

B.C.删除运算方便  D.可方便地用于各种逻辑结构的存储表示2.下面关于线性表的叙述中,错误的是哪一个?

A.线性表采用顺序存储,必须占用一片连续的存储单元。

B.线性表采用顺序存储,便于进行插入和删除操作。

C.线性表采用链接存储,不必占用一片连续的存储单元。

D.线性表采用链接存储,便于插入和删除操作。

3.线性表是具有n个的有限序列。

A.表元素  B.字符  C.数据元素  D.数据项  E.信息项

4.若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运

算,则利用存储方式最节省时间。

A.顺序表  

B.双链表

C.带头结点的双循环链表  D.单循环链表

5.某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用存储方式最节省运算时间。

A.单链表  B.仅有头指针的单循环链表  C.双链表  D.仅有尾指针的单循环链表

6.设一个链表最常用的操作是在末尾插入结点和删除尾结点,则选用(  )最节省

时间。

A.单链表

B.单循环链表

C.带尾指针的单循环链表D.带头结点的双循环链表

7.若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点。

则采用存储方式最节省运算时间。

A.单链表  B.双链表

C.单循环链表  D.带头结点的双循环链表8.静态链表中指针表示的是.

A.内存地址  B.数组下标  C.下一元素地址  D.左、右孩子地址

6

9.链表不具有的特点是

A.插入、删除不需要移动元素B.可随机访问任一元素  C.不必事先估计存储空间D.所需空间与线性长度成正比10.下面的叙述不正确的是

A.线性表在链式存储时,查找第i个元素的时间同i的值成正比B.线性表在链式存储时,查找第i个元素的时间同i的值无关C.线性表在顺序存储时,查找第i个元素的时间同i的值成正比D.线性表在顺序存储时,查找第i个元素的时间同i的值无关

11.双向链表中有两个指针域,llink和rlink分别指向前趋及后继,设p指向链

表中的一个结点,现要求删去p所指结点,则正确的删除是

A.p^.llink^.rlink:

=p^.llink;p^.llink^.rlink:

=p^.rlink;dispose(p);B.dispose(p);p^.llink^.rlink:

=p^.llink;p^.llink^,rlink:

=p^.rlink;C.p^.llink^.rlink:

=p^.llink;dispose(p);p^.llink^.rlink:

=p^.rlink;D.以上A,B,C都不对。

12.

(1)静态链表既有顺序存储的优点,又有动态链表的优点。

所以,它存取表中第

i个元素的时间与i无关。

(2)静态链表中能容纳的元素个数的最大数在表定义时就确定了,以后不能增加。

  (3)静态链表与动态链表在元素的插入、删除上类似,不需做元素的移动。

以上错误的是

A.,  B.  C.,,(3)  D.

13.若长度为n的线性表采用顺序存储结构,在其第i个位置插入一个新元素的算法

的时间复杂度为(1A.O(0)  B.O

(1)  C.O(n)  D.O(n2)

14.对于顺序存储的线性表,访问结点和增加、删除结点的时间复杂度为。

A.O(n)O(n)  B.O(n)O

(1)  C.O

(1)O(n)  D.O

(1)O

(1)15.线性表以链接方式存储时,访问第i位置元素的时间复杂性为

A.O  B.O  C.O  D.O16.非空的循环单链表head的尾结点p↑满足。

A.p↑.link=head  B.p↑.link=NIL  C.p=NIL  D.p=head17.循环链表H的尾结点P的特点是。

A.P^.NEXT:

=H  B.P^.NEXT:

=H^.NEXT  C.P:

=H  D.P:

=H^.NEXT

7

18.在一个以h为头的单循环链中,p指针指向链尾的条件是

A.p^.next=h  B.p^.next=NILC.p^.next.^next=hD.p^.data=-119.完成在双循环链表结点p之后插入s的操作是;

A.p^.next:

=s;s^.priou:

=p;p^.next^.priou:

=s;s^.next:

=p^.next;B.p^.next^.priou:

=s;p^.next:

=s;s^.priou:

=p;s^.next:

=p^.next;C.s^.priou:

=p;s^.next:

=p^.next;p^.next:

=s;p^.next^.priou:

=s;D.s^.priou:

=p;s^.next:

=p^.next;p^.next^.priou:

=s;p^.next:

=s;20.在双向循环链表中,在p指针所指向的结点前插入一个指针q所指向的新结点,其修改指针的操作是(  )。

注:

双向链表的结点结构为(llink,data,rlink)。

供选择的答案:

A.p↑.llink:

=q;q↑.rlink:

=p;p↑.llink↑.rlink:

=q;q↑.llink:

=q;B.p↑.llink:

=q;p↑.llink↑.rlink:

=q;q↑.rlink:

=p;q↑.llink:

=p↑.llink;

C.q↑.rlink:

=p;q↑.llink:

=p↑.llink;p↑.llink↑.rlink:

=q;p↑.llink:

=q;

D.q↑.llink:

=p↑.llink;q↑.rlink:

=p;p↑.llink:

=q;p↑.llink:

=q;21.在非空双向循环链表中q所指的结点前插入一个p所指的链结点的过程依次为:

rlink(p)←q;llink(p)←llink(q);llink(q)←p;

A.rlink(q)←pB.rlink(llink(q))←pC.rlink(llink(p))←pD.rlink(rlink(p))←p

22.双向链表中有两个指针域,llink和rlink,分别指回前驱及后继,设p指向链表中的一个结点,q指向一待插入结点,现要求在p前插入q,则正确的插入为A.p^.llink:

=q;q^.rlink:

=p;p^.llink^.rlink:

=q;q^.llink:

=p^.llink;

B.q^.llink:

=p^.llink;p^.llink^.rlink:

=q;q^.rlink:

=p;p^.llink:

=q^.rlink;

C.q^.rlink:

=p;p^.rlink:

=q;p^.llink^.rlink:

=q;q^.rlink:

=p;D.p^.llink^.rlink:

=q;q^.rlink:

=p;q^.llink:

=p^.llink;p^.llink:

=q;23.在双向链表指针p的结点前插入一个指针q的结点操作是。

A.p->Llink=q;q->Rlink=p;p->Llink->Rlink=q;q->Llink=q;B.p->Llink=q;p->Llink->Rlink=q;q->Rlink=p;q->Llink=p->Llink;C.q->Rlink=p;q->Llink=p->Llink;p->Llink->Rlink=q;p->Llink=q;D.q->Llink=p->Llink;q->Rlink=q;p->Llink=q;p->Llink=q;

8

24.在单链表指针为p的结点之后插入指针为s的结点,正确的操作是:

A.p->next=s;s->next=p->next;B.s->next=p->next;p->next=s;C.p->next=s;p->next=s->next;D.p->next=s->next;p->next=s;

25.对于一个头指针为head的带头结点的单链表,判定该表为空表的条件是A.head==NULLB.head→next==NULL  C.head→next==headD.head!

=NULL26.在双向链表存储结构中,删除p所指的结点时须修改指针。

A.(p^.llink)^.rlink:

=p^.rlink  (p^.rlink)^.llink:

=p^.llink;B.p^.llink:

=(p^.llink)^.llink  (p^.llink)^.rlink:

=p;C.(p^.rlink)^.llink:

=p  p^.rlink:

=(p^.rlink)^.rlinkD.p^.rlink:

=(p^.llink)^.llink  p^.llink:

=(p^.rlink)^.rlink;

二、填空题

1.当线性表的元素总数基本稳定,且很少进行插入和删除操作,但要求以最快的速度存取线性表中的元素时,应采用_______存储结构。

2.线性表L=用数组表示,假定删除表中任一元素的概率相同,则删除一个元素平均需要移动元素的个数是________。

3.设单链表的结点结构为(data,next),next为指针域,已知指针px指向单链表中data为x的结点,指针py指向data为y的新结点,若将结点y插入结点x之后,则需要执行以下语句:

_______;______;

4.在一个长度为n的顺序表中第i个元素之前插入一个元素时,需向后移动________个元素。

5.在单链表中设置头结点的作用是________。

6.对于一个具有n个结点的单链表,在已知的结点*p后插入一个新结点的时间复杂度为________,在给定值为x的结点后插入一个新结点的时间复杂度为________。

7.根据线性表的链式存储结构中每一个结点包含的指针个数,将线性链表分成________和_______;而又根据指针的连接方式,链表又可分成________和________。

8.在双向循环链表中,向p所指的结点之后插入指针f所指的结点,其操作是_______、

_______、_______、________。

9.在双向链表结构中,若要求在p指针所指的结点之前插入指针为s所指的结点,则需执行下列语句:

s^.next:

=p;s^.prior:

=________;p^.prior:

=s;________:

=s;10.链接存储的特点是利用________来表示数据元素之间的逻辑关系。

11.顺序存储结构是通过________表示元素之间的关系的;链式存储结构是通过

9

________表示元素之间的关系的。

12.对于双向链表,在两个结点之间插入一个新结点需修改的指针共______个,单链

表为_______个。

13.循环单链表的最大优点是:

________。

14.已知指针p指向单链表L中的某结点,则删除其后继结点的语句是:

________15.带头结点的双循环链表L中只有一个元素结点的条件是:

________16.在单链表L中,指针p所指结点有后继结点的条件是:

__  17.带头结点的双循环链表L为空表的条件是:

________。

18.在单链表p结点之后插入s结点的操作是:

_______。

三、解答题

1.线性表有两种存储结构:

一是顺序表,二是链表。

试问:

如果有n个线性表同时并存,并且在处理过程中各表的长度会动态变化,线性

表的总数也会自动地改变。

在此情况下,应选用哪种存储结构?

为什么?

若线性表的总数基本稳定,且很少进行插入和删除,但要求以最快的速度存取

线性表中的元素,那么应采用哪种存储结构?

为什么?

2.线性表的顺序存储结构具有三个弱点:

其一,在作插入或删除操作时,需移动大

量元素;其二,于难以估计,必须预先分配较大的空间,往往使存储空间不能得到充分利用;其三,表的容量难以扩充。

线性表的链式存储结构是否一定都能够克服上述三个弱点,试讨论之。

3.若较频繁地对一个线性表进行插入和删除操作,该线性表宜采用何种存储结构?

为什么?

4.线性结构包括______、______、_______和_______。

线性表的存储结构分成______

和______。

请用类PASCAL语言描述这两种结构。

5.线性表用顺序映射表示时,ai和ai+1的物理位置相邻吗?

链接表示时呢?

6.说明在线性表的链式存储结构中,头指针与头结点之间的根本区别;头结点与首

元结点的关系。

7.试述头结点,首元结点,头指针这三个概念的区别.

8.有线性表(a1,a2,?

an),采用单链表存储,头指针为H,每个结点中存放线性表中一个元素,现查找某个元素值等于X的结点。

分别写出下面三种情况的查找语句。

要求时间尽量少。

线性表中元素无序。

线性表中元素按递增有序。

线性表中元素按递减有序。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1