ImageVerifierCode 换一换
格式:DOCX , 页数:25 ,大小:32.69KB ,
资源ID:11961651      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11961651.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据结构习题11级用.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据结构习题11级用.docx

1、数据结构习题11级用 数据结构习题11级用 数 据 结 构 习 题 计算机学院专业基础教研室 xx年12月 1 前言 数据结构是计算机相关专业教学计划中的一门核心课程,是有志从事计算机与技术工作的人员的一门重要的专业基础课程。计算机相关学科各领域都要用到各种数据结构,要从事这些领域的工作,尤其是计算机应用领域的开发研制工作,必须具备良好的数据结构基础。 数据结构课程的教学要求是学会分析研究计算机加工的数据对象的特征,以便在实际应用中选择适当的数据结构、存储结构和相应的算法,初步掌握算法的时间与空间性能分析技巧,得到复杂程序设计的训练。 我们在认真总结多年教学经验和体会的基础上,结合新时期大学生

2、的学习特点和要求,编写了这本数据结构习题,作为数据结构课程学习的配套教材,以希望通过习题的求解,使学生更好地学习和掌握课程内容,理解和掌握算法设计所需的方法和技术,为整个专业学习打下良好的基础。 于时间仓促和编者水平所限,本书一定还存在着许多问题,敬请广大读者批评指正。 2 目 录 第一章 绪论 1 第二章 线性表 6 第三章 栈和队列12 第四章 串19 第五章 数组和广义表22 第六章 树和二叉树28 第七章 图33 第九章 查找38 第十章 内部排序41 3 第一章绪论 一、选择题 1. 算法的计算量的大小称为计算的。 A效率 B. 复杂性C. 现实性D. 难度 2. 算法的时间复杂度取

3、决于 A问题的规模B. 待处理数据的初态C. A和B 3.计算机算法指的是,它必须具备 这三个特性。 (1) A计算方法B. 排序方法 C. 解决问题的步骤序列D. 调度方法 (2) A可执行性、可移植性、可扩充性B. 可执行性、确定性、有穷性 C. 确定性、有穷性、稳定性 D. 易读性、稳定性、安全性 4一个算法应该是。 A程序B问题求解步骤的描述 C要满足五个基本特性 DA和C. 5. 下面关于算法说法错误的是 A算法最终必须计算机程序实现 B.为解决某问题的算法同为该问题编写的程序含义是相同的 C. 算法的可行性是指指令不能有二义性D. 以上几个都是错误的 6. 下面说法错误的是 (1)

4、算法原地工作的含义是指不需要任何额外的辅助空间 在相同的规模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以下那一个术语与数据

5、的存储结构无关? 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连续存储设计时,存储单元

6、的地址。 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

7、的和运算等的学科。 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分析算法

8、的效率以求改进D分析算法的易懂性和文档性A空间复杂性和时间复杂性B正确性和简明性C可读性和文档性 D数据复杂性和程序复杂性 27计算机算法指的是,它必具备输入、输出和等五个特性。 A计算方法B排序方法C解决问题的有限运算序列D调度方法 A可行性、可移植性和可扩充性B可行性、确定性和有穷性C确定性、有穷性和稳定性D易读性、稳定性和安全性 28线性表的逻辑顺序与存储顺序总是一致的,这种说法。A正确 B不正确 二、填空题 1数据的物理结构包括的表示和的表示。 3 2. 对于给定的n个元素,可以构造出的逻辑结构有, _四种。 3数据的逻辑结构是指。 4一个数据结构在计算机中称为存储结构。 5抽象数据类

9、型的定义仅取决于它的一组_,而与_无关,即不论其内 部结构如何变化,只要它的_不变,都不影响其外部使用。 6数据结构中评价算法的两个重要指标是 7. 数据结构是研讨数据的_和_,以及它们之间的相互关系,并对与这 种结构定义相应的_,设计出相应的_。 8 一个算法具有5个特性: 、 、 ,有零个或多个输入、有一 个或多个输出。 9 下面程序段的时间复杂度为_。(n1) sum=1; for (i=0;sum 10计算机执行下面的语句时,语句s的执行次数为 _ 。FOR(i=l;i=i;j-)s; 11.下面程序段中带下划线的语句的执行次数的数量级是: i:=1; WHILE i 三、基础知识题

10、1数据结构是一门研究什么内容的学科? 2数据元素之间的关系在计算机中有几种表示方法?各有什么特点? 3数据类型和抽象数据类型是如何定义的。二者有何相同和不同之处,抽象数据类 型的主要特点是什么?使用抽象数据类型的主要好处是什么? 4回答问题 在数据结构课程中,数据的逻辑结构,数据的存储结构及数据的运算之间存 在着怎样的关系? 若逻辑结构相同但存储结构不同,则为不同的数据结构。这样的说法对吗? 举例说明之。 在给定的逻辑结构及其存储表示上可以定义不同的运算集合,从而得到不同 的数据结构。这样说法对吗?举例说明之。 评价各种不同数据结构的标准是什么? 4 5评价一个好的算法,您是从哪几方面来考虑的

11、? 6解释和比较以下各组概念 抽象数据类型及数据类型 数据结构、逻辑结构、存储结构 抽象数据类型 算法的时间复杂性 算法频度 7. 根据数据元素之间的逻辑关系,一般有哪几类基本的数据结构? 8对于一个数据结构,一般包括哪三个方面的讨论? 9. 当你为解决某一问题而选择数据结构时,应从哪些方面考虑? 10. 若将数据结构定义为一个二元组,说明符号D,R 应分别表示什么? 11数据结构与数据类型有什么区别? 12数据的存储结构哪四种基本的存储方法实现? 13若有100个学生,每个学生有学号,姓名,平均成绩,采用什么样的数据结构最 方便,写出这些结构? 14. 运算是数据结构的一个重要方面。试举一例

12、,说明两个数据结构的逻辑结构和存 储方式完全相同,只是对于运算的定义不同。因而两个结构具有显著不同的特性,是两个不同的结构。 15. 在编制管理通讯录的程序时, 什么样的数据结构合适? 为什么? 16. 试举一例,说明对相同的逻辑结构,同一种运算在不同的存储方式下实现,其运 算效率不同。 17. 有实现同一功能的两个算法A1和A2,其中A1的时间复杂度为Tl=O(2),A2的 时间复杂度为T2=O(n2),仅就时间复杂度而言,请具体分析这两个算法哪一个好。 18设计一数据结构,用来表示某一银行储户的基本信息: 账号、姓名、开户年月 日、储蓄类型、存入累加数、利息、帐面总数。 5 n 第二章 线

13、性表 一 、 选择题 1下述哪一条是顺序存储结构的优点? A 存储密度大B插入运算方便 B C删除运算方便D可方便地用于各种逻辑结构的存储表示 2下面关于线性表的叙述中,错误的是哪一个? A线性表采用顺序存储,必须占用一片连续的存储单元。 B线性表采用顺序存储,便于进行插入和删除操作。 C线性表采用链接存储,不必占用一片连续的存储单元。 D线性表采用链接存储,便于插入和删除操作。 3线性表是具有n个的有限序列。 A表元素B字符C数据元素D数据项E信息项 4若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运 算,则利用存储方式最节省时间。 A顺序表 B双链表 C带头结点的双循

14、环链表D单循环链表 5某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用存储方式最节省运算时间。 A单链表B仅有头指针的单循环链表C双链表D仅有尾指针的单循环链表 6设一个链表最常用的操作是在末尾插入结点和删除尾结点,则选用()最节省 时间。 A. 单链表 B.单循环链表 C. 带尾指针的单循环链表 D.带头结点的双循环链表 7若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点。则采用存储方式最节省运算时间。 A单链表B双链表 C单循环链表D带头结点的双循环链表 8. 静态链表中指针表示的是. A 内存地址B数组下标C下一元素地址D左、右孩子地址

15、6 9. 链表不具有的特点是 A插入、删除不需要移动元素 B可随机访问任一元素C不必事先估计存储空间 D所需空间与线性长度成正比 10. 下面的叙述不正确的是 A线性表在链式存储时,查找第i个元素的时间同i的值成正比 B. 线性表在链式存储时,查找第i个元素的时间同i的值无关 C. 线性表在顺序存储时,查找第i个元素的时间同i 的值成正比 D. 线性表在顺序存储时,查找第i个元素的时间同i的值无关 11 双向链表中有两个指针域,llink和rlink分别指向前趋及后继,设p指向链 表中的一个结点,现要求删去p所指结点,则正确的删除是 Ap.llink.rlink:=p.llink; p.lli

16、nk.rlink:=p.rlink; dispose(p); Bdispose(p); p.llink.rlink:=p.llink; p.llink,rlink:=p.rlink; Cp.llink.rlink:=p.llink; dispose(p); p.llink.rlink:=p.rlink; D以上A,B,C都不对。 12.(1) 静态链表既有顺序存储的优点,又有动态链表的优点。所以,它存取表中第 i个元素的时间与i无关。 (2) 静态链表中能容纳的元素个数的最大数在表定义时就确定了,以后不能增加。(3) 静态链表与动态链表在元素的插入、删除上类似,不需做元素的移动。 以上错误的是

17、 A,BC,,(3)D. 13. 若长度为n的线性表采用顺序存储结构,在其第i个位置插入一个新元素的算法 的时间复杂度为(1 A. O(0)B. O(1)C. O(n) D. O(n2) 14. 对于顺序存储的线性表,访问结点和增加、删除结点的时间复杂度为。 AO(n) O(n)B. O(n) O(1)C. O(1) O(n)D. O(1) O(1) 15线性表以链接方式存储时,访问第i位置元素的时间复杂性为 AOBOCODO 16非空的循环单链表head的尾结点p满足。 Ap.link=headBp.link=NILCp=NILDp= head 17循环链表H的尾结点P的特点是。 AP.NE

18、XT:=HBP.NEXT:= H.NEXTCP:=HDP:=H.NEXT 7 18在一个以 h 为头的单循环链中,p 指针指向链尾的条件是 A. p.next=hB. p.next=NIL C. p.next.next=h D. p.data=-1 19完成在双循环链表结点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.n

19、ext:=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.rl

20、ink:=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; Arlink(q) p Brlink(llink(q) p Crlink(llink(p) p Drlink(rlink(p) p 22 双向链表中有两个指针域,llink和rlink,分别指回前驱及后继,设p指向链表

21、中的一个结点,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的结点

22、前插入一个指针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的结点,正确的操作是:。 Ap-next=s;s-next=p-next; B s-next=p-

23、next;p-next=s; Cp-next=s;p-next=s-next; D p-next=s-next;p-next=s; 25对于一个头指针为head的带头结点的单链表,判定该表为空表的条件是 Ahead=NULL Bheadnext=NULLCheadnext=head Dhead!=NULL 26. 在双向链表存储结构中,删除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

24、:=pp.rlink:=(p.rlink).rlink D p.rlink:=(p.llink).llinkp.llink:=(p.rlink).rlink; 二、填空题 1当线性表的元素总数基本稳定,且很少进行插入和删除操作,但要求以最快的速度存取线性表中的元素时,应采用_存储结构。 2线性表L=用数组表示,假定删除表中任一元素的概率相同,则删除一个元素平均需要移动元素的个数是_。 3设单链表的结点结构为(data,next),next为指针域,已知指针px指向单链表中data为x的结点,指针py指向data为y的新结点 , 若将结点y插入结点x之后,则需要执行以下语句:_; _; 4在一个

25、长度为n的顺序表中第i个元素之前插入一个元素时,需向后移动_个元素。 5在单链表中设置头结点的作用是_。 6对于一个具有n个结点的单链表,在已知的结点*p后插入一个新结点的时间复杂度为_,在给定值为x的结点后插入一个新结点的时间复杂度为_。 7根据线性表的链式存储结构中每一个结点包含的指针个数,将线性链表分成_和_;而又根据指针的连接方式,链表又可分成_和_。 8在双向循环链表中,向p所指的结点之后插入指针f所指的结点,其操作是_、 _、_、_。 9在双向链表结构中,若要求在p 指针所指的结点之前插入指针为s 所指的结点,则需执行下列语句: s .next:=p; s .prior:= _;p

26、 .prior:=s;_:=s; 10.链接存储的特点是利用_来表示数据元素之间的逻辑关系。 11.顺序存储结构是通过_表示元素之间的关系的;链式存储结构是通过 9 _表示元素之间的关系的。 12. 对于双向链表,在两个结点之间插入一个新结点需修改的指针共 _个,单链 表为_个。 13. 循环单链表的最大优点是:_。 14. 已知指针p指向单链表L中的某结点,则删除其后继结点的语句是:_ 15. 带头结点的双循环链表L中只有一个元素结点的条件是:_ 16. 在单链表L中,指针p所指结点有后继结点的条件是:_17.带头结点的双循环链表L为空表的条件是:_。 18. 在单链表p结点之后插入s结点的

27、操作是:_。 三、解答题 1线性表有两种存储结构:一是顺序表,二是链表。试问: 如果有 n个线性表同时并存,并且在处理过程中各表的长度会动态变化,线性 表的总数也会自动地改变。在此情况下,应选用哪种存储结构? 为什么? 若线性表的总数基本稳定,且很少进行插入和删除,但要求以最快的速度存取 线性表中的元素,那么应采用哪种存储结构?为什么? 2线性表的顺序存储结构具有三个弱点:其一,在作插入或删除操作时,需移动大 量元素;其二,于难以估计,必须预先分配较大的空间,往往使存储空间不能得到充分利用;其三,表的容量难以扩充。线性表的链式存储结构是否一定都能够克服上述三个弱点,试讨论之。 3若较频繁地对一

28、个线性表进行插入和删除操作,该线性表宜采用何种存储结构? 为什么? 4线性结构包括_、_、_和_。线性表的存储结构分成_ 和_。请用类PASCL语言描述这两种结构。 5线性表用顺序映射表示时,ai和ai+1的物理位置相邻吗?链接表示时呢? 6. 说明在线性表的链式存储结构中,头指针与头结点之间的根本区别;头结点与首 元结点的关系。 7. 试述头结点,首元结点,头指针这三个概念的区别. 8有线性表(a1,a2,?,an),采用单链表存储,头指针为H,每个结点中存放线性表中一个元素,现查找某个元素值等于X的结点。分别写出下面三种情况的查找语句。要求时间尽量少。 线性表中元素无序。线性表中元素按递增有序。 线性表中元素按递减有序。

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

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