数据结构习题(二)
数据结构习题2
数据结构习题
一、选择题
1、线性表是具有n个(n>=0)()的有限序列。
A.表元素 B. 字符 C. 数据元素 D. 数据项
2、顺序存储结构的优点( ).
A.存储密度大 B. 插入运算方便
C. 删除运算方便
D. 可方便地用于各种逻辑结构的存储
表示
3、带头结点的单链表head为空的判断条件是( ).
A.head= =NULL B. head->next= =NULL
C.head->next= =head D. head!=NULL
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.所需空间与线性长度成正比9、线性表的静态链表存储结构与顺序存储结构相比的优点( ).
A.所有的操作算法简单C.便于插入和删除
C.便于利用零散的存储空间D.便于随机存储
数据结构练习题第二章线性表习题及答案
数据结构练习题第⼆章线性表习题及答案
第⼆章线性表
⼀.名词解释
1.线性结构
2.数据结构的顺序实现
3.顺序表
4.链表
5.数据结构的链接实现
6. 建表
7.字符串
8.串
9.顺序串 10.链串
⼆、填空题
1.为了便于讨论,有时将含n(n>=0)个结点的线性结构表⽰成(a1,a2,……a n),其中每个a i代表⼀个______。a1称为______结点,a n称为______结点,i称为a i在线性表中的________或______。对任意⼀对相邻结点a i、a i┼1(1<=i
2.为了满⾜运算的封闭性,通常允许⼀种逻辑结构出现不含任何结点的情况。不含任何结点的线性结构记为______或
______。
3.线性结构的基本特征是:若⾄少含有⼀个结点,则除起始结点没有直接______外,其他结点有且仅有⼀个直接______;除终端结点没有直接______外,其它结点有且仅有⼀个直接______.
4.所有结点按1对1的邻接关系构成的整体就是______结构。
5.线性表的逻辑结构是______结构。其所含结点的个数称为线性表的______,简称______.
6.表长为O的线性表称为______
7.线性表典型的基本运算包括:______、______、______、______、______、______等六种。
8.顺序表的特点是______。
9.顺序表的类型定义可经编译转换为机器级。假定每个datatype类型的变量占⽤k(k>=1)个内存单元,其中,b是顺序表的第⼀个存储结点的第⼀个单元的内存地址,那么,第i个结点a i的存储地址为______。
数据结构练习题2
数据结构练习题2
练习题
⼀、填空题
1、__数据项_是数据的最⼩单位,_数据元素_____是讨论数
据结构时涉及的最⼩数据单位。
2、设⼀棵完全⼆叉树具有100个结点,则此完全⼆叉树有 49
个度为2的结点。
3、在⽤于表⽰有向图的邻接矩阵中,对第i列的元素进⾏
累加,可得到第i个顶点的__⼊____度。
4、已知⼀棵度为3的树有2个度为1的结点,3个度为2
的结点,4个度为3的结点,则该树中有_____12___ 个叶⼦的结点。根据⼆叉树性质3的证明过程,有n0=n2+2n3+1(n0、
n2、n3分别为叶⼦结点、度为2的结点和度为3的结点的个数)。
5、有⼀个长度为20的有序表采⽤⼆分查找⽅法进⾏查找,
共有_4_____个元素的查找长度为3。
6、对于双向链表,在两个结点之间插⼊⼀个新结点需要修
改的指针共_4___个。
删除⼀个结点需要修改的指针共______2___个。
7、已知⼴义表LS=(a,(b,c,d),e),它的深度是______2____,
长度是______3____。
8、循环队列的引⼊是为了克服___假溢出_______。
9、表达式a*(b+c)-d/f的后缀表达式是
__abc+*df/-_________。
10、数据结构中评价算法的两个重要指标是时间和空间复杂度。
11、设r指向单链表的最后⼀个结点,要在最后⼀个结点之
后插⼊s所指的结点,需执⾏的三条语句是_r->next=s_____;r=s; r->next=null;。
12、设有⼀个空栈,栈顶指针为1000H(⼗六进制),现有输
数据结构树的测试题(二)
习题六树和二叉树
一、单项选择题
1.以下说法错误的是 ( A )
A.树形结构的特点是一个结点可以有多个直接前趋
B.线性结构中的一个结点至多只有一个直接后继
C.树形结构可以表达(组织)更复杂的数据
D.树(及一切树形结构)是一种"分支层次"结构
E.任何只含一个结点的集合是一棵树
2.下列说法中正确的是 ( D )
A.任何一棵二叉树中至少有一个结点的度为2
B.任何一棵二叉树中每个结点的度都为2
C.任何一棵二叉树中的度肯定等于2
D.任何一棵二叉树中的度可以小于2
3.讨论树、森林和二叉树的关系,目的是为了( A )
A.借助二叉树上的运算方法去实现对树的一些运算
B.将树、森林按二叉树的存储方式进行存储
C.将树、森林转换成二叉树
D.体现一种技巧,没有什么实际意义
4.树最适合用来表示 ( C )
A.有序数据元素 B.无序数据元素
C.元素之间具有分支层次关系的数据 D.元素之间无联系的数据
5.若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是( B )A.9 B.11 C.15 D.不确定
6.设森林F中有三棵树,第一,第二,第三棵树的结点个数分别为M1,M2和M3。与森林F 对应的二叉树根结点的右子树上的结点个数是( D )。
A.M1 B.M1+M2 C.M3 D.M2+M3
7.一棵完全二叉树上有1001个结点,其中叶子结点的个数是( E )
A. 250 B. 500 C.254 D.505 E.以上答案都不对
8.二叉树的第I层上最多含有结点数为( C )
A.2I B. 2I-1-1 C. 2I-1 D.2I -1
数据结构习题(二)
数据结构习题(二)
照亮我的道路,并且不断地给我新的勇气去愉快地正视生活的理想,是善、美和真。要是没有志同道合者之间的亲切感情,要不是全神贯注于客观世界——那个在艺术和科学工作领域里永远达不到的对象,那末在我看来,生活就会是空虚的。人们所努力追求的庸俗的目标——财产、虚荣、奢侈的生活——我总觉得都是可鄙的。
数据结构习题(5)
学号________ 姓名_______ 课堂号(A:周一课堂
B:周二课堂)
1. 选择题
1) 对N个元素的表做顺序查找时
若查找每个元素的概率相同
则平均查找长度为( )
A.(N+1)/2 B. N/2 C. N D. [(1+N)*N ]/2
2) 下面关于二分查找的叙述正确的是 ( )
A. 表必须有序
表可以顺序方式存储
也可以链表方式存储
B. 表必须有序且表中数据必须是整型
实型或字符型
C. 表必须有序
而且只能从小到大排列
D. 表必须有序
且表只能以顺序方式存储
3) 折半查找的时间复杂性为()
A. O(n2)
B. O(n)
C. O(nlog(n))
D. O(log(n))
4) 概率不同的有序表
最适合的查找算法是()
A.顺序查找 B.折半查找 C.静态树表查找 D.索引顺序表查找
5) 平均查找长度最短的查找方法是____________
A.折半查找 B.顺序查找 C.哈希查找 4.其他6) 折半查找有序表(4
6
10
12
20
30
50
70
88
100)
若查找表中元素58
则它将依次与表中比较大小
查找结果是失败
A.20
70
30
50 B.30
88
70
50 C.20
50 D.30
88
50
数据结构复习题 (2)
一.判断题(下列各题,正确的请在前面的括号内打√;错误的打×)
第1章
(√)(1)数据的逻辑结构与数据元素本身的内容和形式无关。
(√)(2)一个数据结构是由一个逻辑结构和这个逻辑结构上的一个基本运算集构成的整体。(×)(3)数据元素是数据的最小单位。
(×)(4)数据项是数据的基本单位。
(×)(5)数据的逻辑结构和数据的存储结构是相同的。
(√)(6)数据的逻辑结构是各数据元素之间的逻辑关系,是用户按使用需要而建立的。(√)(7)数据的物理结构是指数据在计算机内实际的存储形式。
(√)(8)从逻辑关系上讲,数据结构主要分为线性结构和非线性结构两类。
(√)(9)数据的存储结构是数据的逻辑结构的存储映像。
(√)(10)算法是对解题方法和步骤的描述。
第2章
(×)(1)链表的物理存储结构具有同链表一样的顺序。
(×)(2)链表的每个结点都恰好包含一个指针域。
(√)(3)线性表中的元素可以是各种各样的,但同一线性表中的数据元素具有相同的特性,因此属于同一数据对象。
(×)(4)链表的删除算法很简单,因为当删除链中某个结点后,计算机会自动地将后续的各个单元向前移动。
(×)(5)顺序表结构适宜于进行顺序存取,而链表适宜于进行随机存取。
(√)(6)数组元素的存储位置是下标的线性函数。
(√)(7)在单链表中,元素的存储位置用指针联系,所以可以从头结点开始查找任何一个元素。
(×)(8)顺序存储线性表的插入和删除操作不需要付出很大的代价,因为平均每次移动仅一半的元素。
(×)(9)顺序存储方式的优点是存储密度大,插入、删除效率高。
数据结构习题及答案 (2)
第二章线性表
一、选择题
1.一个线性表第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是( )
(A)110 (B)108(C)100 (D)120
参考答案:B
2. 向一个有127个元素的顺序表中插入一个新元素并保持原来顺序不变,平均要移动()个元素。
(A)64(B)63 (C)63.5 (D)7
参考答案:C
3.线性表采用链式存储结构时,其地址()。
(A) 必须是连续的 (B) 部分地址必须是连续的
(C) 一定是不连续的 (D) 连续与否均可以
参考答案:D
4. 在一个单链表中,若p所指结点不是最后结点,在p之后插入s所指结点,则执行()
(A)s->next=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;
参考答案:B
5.在一个单链表中,若删除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;
参考答案:A
6.下列有关线性表的叙述中,正确的是()
(A)线性表中的元素之间隔是线性关系
(B)线性表中至少有一个元素
(C)线性表中任何一个元素有且仅有一个直接前趋
(D)线性表中任何一个元素有且仅有一个直接后继
参考答案:A
7.线性表是具有n个()的有限序列(n≠0)
(A)表元素(B)字符(C)数据元素(D)数据项
数据结构习题2
数据结构习题2
2月26日应交习题
2-1 用线性表ADT写一个函数,交换当前元素和表中它的后继元素。
2-2 在链表类的实现中增加一个成员函数实现对表中元素置逆的操作(设原链表为a0, a1, …, a n-2,a n-1;则置逆后的序列为a n-1, a n-2, …,a1, a0)。对于有n个元素的线性表,你的算法的运行时间应为O(n)。
2-3 已知Q是一个非空队列,S是一个空栈。仅用栈和队列的ADT 函数和一个成员变量X写一个算法使Q中的元素倒置。
2-4 编译器和文本编辑器的一个普遍问题是判断一个字符串中的圆括号(或其它括号)是否平衡并匹配。例如,字符串“((())())()”中的圆括号恰好平衡且匹配,但是字符串
“)()(”中的圆括不平衡,字符串“())”中的圆括号不匹配。
(a) 给出一个算法,当字符串中的圆括号恰好平衡且匹配时返回TRUE,否则返回FALSE
。用一个栈记录目前扫描到的左圆括号的个数。提示:从左到右扫描一个合法的
字符串,保证任何时候所遇到的右圆括号不比左圆括号多;
(b) 给出一个算法,如果字符串不平衡或不匹配时返回字符串中第一个非法圆括号的
位置。也说是说,如果发现一个多余的右圆括号则返回它的位置;如果有多个左
圆括号则返回第一个多余的左圆括号的位置;如果字符串平衡且恰好配套则返回-
1。用一个栈记录目前扫描到的左圆括号的个数和位置。
*2-5 一个未排好序的整数顺序表允许在常数时间内,简单地将一个新整数插入表尾。但是在有n个整数的线性表中查找一个关键值为X 的整数需要的平均时间为O(n)。对比之下,对一个排好序的包含n个
计算机数据结构习题2附答案.
第六章图
1、填空题
一个有 n 个结点的无向图中,所有顶点的度数之和等于所有边数之和的 _2__倍。
一个有 n 个结点的强连通图,最多有 _n(n-1_/2__条边,最少有 ___n-1_ 条边。
在一个无向图中,所有顶点的度数之和等于所有边数之和的 __2____倍。
2、判断题
1无向图的邻接矩阵一定是对称矩阵。(√
2有向图的邻接矩阵一定是对称矩阵。 (×
3图的深度优先搜索路径是唯一的。 (×
4图的广度优先搜索路径不是唯一的。(√
5一个图可能存在多棵最小生成树。(√
6无向图的邻接矩阵一定是对称的,有向图的邻接矩阵一定是不对称的。(√
7图的关键路径是指从源点到汇点的最短路径。 (×
8用邻接矩阵法存储图,占用的存储空间数量只与图中边数有关,与结点个数无关。 (×
9对一个图分别进行深度优先搜索和广度优先搜索,得到的结点序列一定是相同的。 (×
10图的关键路径是指从源点到汇点的最长路径。(√
3、选择题
1一个无向连通图的生成树是含有该连通图的全部顶点的 __A__。
A 、极小连通子图
B 、极小子图
C 、极大连通子图
D 、极大子图 2具有 e 条边的有向图,它的邻接表中有 _D__个弧结点。
A 、 e-1
B 、 2e
C 、 2(e-1
D 、 e
3如果某图的邻接矩阵是对角线元素均为零的上三角矩阵,则此图是 __D__
A 、无向图
B 、完全图
C 、强连通图
D 、有向无环图
4顶点个数为 n 的有向图最多有 __D_条弧。
A 、 n-1
B 、 n(n-1/2
C 、 n(n+1/2
D 、 n(n-1
应用题:
数据结构练习2
课堂练习一
1.1 判断题(在你认为正确的题后的括号中打√,否则打X)。
(1)程序与算法没有区别。( X )
(2)程序设计框图就是一种图形化的算法。( √)
(3)采用程序设计语言编写的程序也是算法。( √)
(4)一个算法可以没有输入,但不能没有输出。( X)
(5)顺序存储结构通过数据元素的地址直接反映数据元素间的逻辑关系。(√)
(6)链式存储结构通过指针间接地反映数据元素之间的逻辑关系。(√)
(7)数据的存储结构通常只有顺序存储结构与链式存储结构两种。( X)
(8)具有相同逻辑结构的数据可以采用不同的存储结构。(√)
(9)逻辑结构不相同的数据应该采用不同的存储结构。(√)
(10)算法分析的前提是算法的时空效率高,( X)
1.2 填空题。
(1)“数据结构”课程研究的主要内容包括数据逻辑结构、数据操作结构和数据存储结构三个方面。
(2)一般情况下,算法独立于具体的计算机硬件,与具体的程序设计语言相关。
(3)一个完整的算法应该具有正确性、确定性、有限性、输入和输出五个特性。P5
(4)数据的逻辑结构可以分为线性结构和非线性结构两大类。
(5)除了顺序存储结构与链式存储结构之外,数据的存储结构通常还有索引和散列结构。
(6)数据的逻辑结构是指研究数据元素之间的关联方式,而存储结构是指数据在计算机中的存放方式。P3
(7)逻辑上相邻的数据元素在物理位置上也相邻是顺序存储结构的特点之一。
(8)为了实现随机访问,线性结构应该采用顺序存储结构。
(9)链式存储结构的主要优点是数据不必连续存放。
(10)算法分析是指算法效率分析,主要从时间效率和空间效率这两个方面对算法进行分析。1.3 通常说数据结构是一个二元组(D,R),其中D,R分别代表什么?
数据结构第二章习题(2)
五、线性表具有两种存储方式,即顺序方式和链接方式。现有一个具有五个元素的线性表
L={23,17,47,05,31},若它以链接方式存储在下列 100~119 号地址空间中,每个结点
由数据(占 2 个字节)和指针(占 2 个字节)组成,如下所示:
05 U 17 X 23 V 31 Y 47 Z
^
^
100
(D)分两部分,一部分存放结点值,另一部分存放结点所占单元数
6.链表是一种采用
存储结构存储的线性表;
(A)顺序 (B)链式
(C)星式
(D)网状
7.线性表若采用链式存储结构时,要求内存中可用存储单元的地址:
(A)必须是连续的
(B)部分地址必须是连续的
(C)一定是不连续的
(D)连续或不连续都可以
8.线性表L在
B.p->prior=s;p->prior->next=s;s->prior=p->prior;s->next=p;
C.p->prior->next=s;p->prior=s;s->prior=p->prior;s->next=p;
D.p->prior=s;s->next=p;p->prior->next=s;s->prior=p->prior;
数据结构第二章习题
数据结构第二章习题
第2章线性表
一、单项选择题
1.线性表就是具备n个_________的非常有限序列。
a.表元素b.字符c.数据元素d.数据项2.线性表是_________。
a.一个非常有限序列,可以为空b.一个非常有限序列,不可以为空c.一个无穷序列,可以为空d.一个无穷序列,不可以为空3.线性表使用链表存储时,其地址
_________。
a.必须是连续的b.一定是不连续的c.部分地址必须是连续的d.连续与否均可以4.链表不具备的特点是_________。
a.可以随机出访任一结点b.填入删掉不须要移动元素c.不必事先估算存储空间d.所须要空间与其长度成正比5.设立线性表存有n个元素,以下操作方式中,
_________在顺序单上同时实现比在链表上同时实现效率更高。
a.输出第i(1≤i≤n)个元素值
b.互换第1个元素与第2个元素的值c.顺序输入这n个元素的值
d.输出与给定值x相等的元素在线性表中的序号
6.设立线性表中存有2n个元素,以下操作方式中,_________在单链单上同时实现Obrero在顺序单上同时实现效率更高。a.删掉选定的元素
b.在最后一个元素的后面插入一个新元素c.顺序输出前k个元素
d.互换第i个元素和第2n-i-1个元素的值(i=0,1…,n-1)
7.如果最常用的操作是取第i个结点及其前驱,则采用_________存储方式最节省时间。
a.单链表中b.双链表中
c.单循环链表d.顺序表8.与单链表相比,双链表的优点之一是_________。
a.填入和删掉操作方式更直观b.可以展开随机出访c.可以省略字段指针或表尾指针d.出访前后相连结点更有效率9.率先垂范结点的单链表中l为觑的认定条件就是
数据结构练习题2及答案
数据结构练习题2
2012-3
一、单选题(每题 2 分,共20分)
1.在一个带有附加表头结点的单链表HL中,若要向表头插入一个由指针p指向的结点,则执行( )。
A.HL=p; p->next=HL;
B.p->next=HL->next; HL->next=p;
C.p->next=HL; p=HL;
D.p->next=HL; HL=p;
2.若顺序存储的循环队列的QueueMaxSize=n,则该队列最多可存储()个元素.
A.n
B.n-1
C.n+1
D.不确定
3.下述哪一条是顺序存储方式的优点?()
A.存储密度大 B.插入和删除运算方便
C. 获取符合某种条件的元素方便
D.查找运算速度快
4.设有一个二维数组A[m][n],假设A[0][0]存放位置在600(10),A[3][3]存放位置在678(10),每个元素占一个空间,问A[2][3](10)存放在什么位置?(脚注(10)表示用10进制表示,m>3)
A.658 B.648 C.633 D.653
5.下列关于二叉树遍历的叙述中,正确的是( )。
A.若一个树叶是某二叉树的中序遍历的最后一个结点,则它必是该二叉树的前
序遍历最后一个结点。
B.若一个点是某二叉树的前序遍历最后一个结点,则它必是该二叉树的中序遍
历的最后一个结点。
C.若一个结点是某二叉树的中序遍历的最后一个结点,则它必是该二叉树的前
序最后一个结点。
D.若一个树叶是某二叉树的前序最后一个结点,则它必是该二叉树的中序遍历
最后一个结点。
6.k层二叉树的结点总数最多为( )。
数据结构综合习题2
数据结构综合习题2
综合习题2
一、单选题
1. 具有100个结点的完全二叉树采用顺序存储结构,从根开始自左到到右按找层顺序编号为1—100,则编号为29的结点的左孩子的编号为( )
A.28
B.30
C.58
D.59
2.从逻辑结构上可以把数据结构分成()。
A.动态结构和静态结构
B.紧凑结构和非紧凑结构
C.线性结构和非线性结构
D.内部结构和外部结构
3.在顺序表的表尾插入一个数据元素的时间复杂度为()。
A.)(n O
B.)(log n O
C. )(2n O
D.)1(O
4.带头结点的单链表head 为空的判定条件是()。
A.head==NULL
B.head->next==NULL
C.head!=NULL
D.head->next!=NULL
5.假定利用数组a[N]顺序存储一个栈,用top==-1表示栈空,并已知栈未满,当数据元素x 进栈时所执行的操作为()。
A. a[top++]=x
B. a[--top]=x
C. a[++top]=x
D. a[top--]=x
6.循环队列用数组q[m]存放其数据元素值,已知其头尾指针分别是front 和rear 。从该队列中删除数据元素时,应该执行的操作是( )。
A.front=front+1
B.front++
C.front+1
D.front==(front+1) % m
7.遍历一棵二叉树,在前序序列、中序序列和后序序列中所有叶结点的相对次序()。
A.都不相同
B.完全相同
C.前序和中序相同
D.中序和后序相同
8. 树最适合用来表示()。
A.有序数据元素
B.无序数据元素
《数据结构》(第三版)习题 (2)[2页]
习题2
一.选择题
1.线性表是具有n个()的有限序列(n>0)。
A. 表元素
B.字符
C.数据元素
D.数据项
2. 线性表的顺序存储结构是一种()的存储结构。
A.随机存取 B.顺序存取 C.索引存取 D.HASH 存取
3. 在一个长度为n的顺序表中,向第i个元素(1≤i≤n+1)之前插入一个新元素时,需向后移动()个元素。
A. n-1
B. n-i+1
C. n-i-1
D. i
4. 在一个长度为n的顺序表中,设在任何位置上的删除操作都是等概率的,删除一个元素时大约要移动表中的()个元素。
A. n+1
B. n-1
C. (n-1)/2
D. n
5.若线性表采用顺序存储结构,每个元素占用 4 个存储单元,第一个元素的存储地址为 100,则第 12 个元素的存储地址是()。
A.112 B.144 C.148 D.412
6.在一个长度为 n 的顺序表的任一位置插入一个新元素的时间复杂度为()。
A. O(n)
B.O(n/2)
C. O(1)
D.O(n2)
7.在一个单链表中,已知*q结点是*p结点的前驱结点,若在*q和*p之间插入*s结点,则执行()。
A. s->next=p->next; p->next=s;
B. p->next=s->next; s->next=p;
C. q->next=s; s->next=p;
D. p->next=s; s->next=q;
8.设指针p指向单链表中某结点(数据域为m),指针f指向将要插入的新结点(数据域为x),当x插在结点m之后时,只要先修改()后修改p->next=f即可。
数据结构 习题课2
习题课2
栈
1.设将整数1,2,3,4依次进栈,但只要出栈时栈非空,则可将出栈操作按任何次序加入其中,请回答下述问题:
(1)若入、出栈次序为push(1),pop(),push(2),push(3),pop(),pop(),push(4),pop(),出栈的数字序列为何(这里push(i)表示进栈pop()表示出栈)?
(2)能否得到出栈序列1423和1432?并说明为什么不能得到或者如何得到。
(3)请分析1,2,3,4的24中排列中,哪些序列是可以通过相应的入出栈操作得到的。
【答案】
(1)1,3,2,4;
(2)不能得到1423序列,因为要得到4必须2,3入栈,才能4入栈,然后4出栈,而这时,只能得到3而不能得到2;能得到1432,依照以下入、出栈序列即可得到:push(1),pop(),push(2),push(3),push(4),pop(),pop(),pop()
2.链栈中为何不设置头结点?
【答案】栈的操作位置就是栈顶一个位置,不设置头结点,插入、删除更方便。
3.循环队列的优点是什么?如何判别它为空和满?
【答案】
(1)循环队列结构解决了假溢出问题;
(2)采用少用一个存储单元的策略,让队头指针指向实际队头,队尾指针指向队尾元素的下一个位置。
队空的判定条件:Q->front==Q->rear
队满的判定条件:Q->front==(Q->rear+1)%Queuesize
4.设计长度为n的链队列用单循环链表表示,若只设头指针,则入队、出队的时间为何?若只设尾指针呢?
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
保持青春的秘诀,是有一颗不安分的心。
数据结构习题(5)
学号________ 姓名_______ 课堂号(A:周一课堂,B:周二课堂)
1. 选择题
1) 对N个元素的表做顺序查找时,若查找每个元素的概率相同,则平均查找长度为( )
A.(N+1)/2 B. N/2 C. N D. [(1+N)*N ]/2
2) 下面关于二分查找的叙述正确的是 ( )
A. 表必须有序,表可以顺序方式存储,也可以链表方式存储
B. 表必须有序且表中数据必须是整型,实型或字符型
C. 表必须有序,而且只能从小到大排列
D. 表必须有序,且表只能以顺序方式存储
3) 折半查找的时间复杂性为( )
A. O(n2) B. O(n) C. O(nlog(n)) D. O(log(n))
4) 概率不同的有序表,最适合的查找算法是( )
A.顺序查找 B.折半查找 C.静态树表查找 D.索引顺序表查找
5) 平均查找长度最短的查找方法是____________。
A.折半查找 B.顺序查找 C.哈希查找 4.其他
6) 折半查找有序表(4,6,10,12,20,30,50,70,88,100)。若查找表中元素58,则它将依次与表中 比较大小,查找结果是失败。
A.20,70,30,50 B.30,88,70,50 C.20,50 D.30,88,50
7) 当采用分快查找时,数据的组织方式为 ( )
A.数据分成若干块,每块内数据有序
B.数据分成若干块,每块内数据不必有序,但块间必须有序,每块内最大(或最小)的数据组成索引块
C. 数据分成若干块,每块内数据有序,每块内最大(或最小)的数据组成索引块
D. 数据分成若干块,每块(除最后一块外)中数据个数需相同
8) 分别以下列序列构造二叉排序树,与用其它三个序列所构造的结果不同的是( )
A.(100,80, 90, 60, 120,110,130) B.(100,120,110,130,80, 60, 90)
C.(100,60, 80, 90, 120,110,130) D. (100,80, 60, 90, 120,130,110)
9) 设有一组记录的关键字为{19,14,23,1,68,20,84,27,55,11,10,79},用链地址法构造散列表,散列函数为H(key)=key MOD 13,散列地址为1的链中有( )个记录。
A.1 B. 2 C. 3 D. 4
10) 散列表的地址区间为0-17,散列函数为H(K)=K mod 17。采用线性探测法处理冲突,并将关键字序列26,25,72,38,8,18,59依次存储到散列表中。
(1)元素59存放在散列表中的地址是( )。
A. 8 B. 9 C. 10 D. 11
(2)存放元素59需要搜索的次数是( )。
A. 2 B. 3 C. 4 D. 5
11) 下面给出的四种排序法中( )排序法是不稳定性排序法。
A. 简
单插入排序 B. 冒泡排序 C. 希尔排序 D. 快速排序
12) 对一组数据(84,47,25,15,21)排序,数据的排列次序在排序的过程中的变化为
(1) 84 47 25 15 21 (2) 15 47 25 84 21 (3) 15 21 25 84 47 (4) 15 21 25 47 84
则采用的排序是 ( )。
A. 选择 B. 冒泡 C. 快速 D. 插入
13) 对序列{15,9,7,8,20,-1,4}进行排序,进行一趟后数据的排列变为{4,9,-1,8,20,7,15};则采用的是( )排序。
A. 选择 B. 快速 C. 希尔 D. 冒泡
14) 有一组数据(15,9,7,8,20,-1,7,4) 用快速排序的划分方法进行一趟划分后数据的排序为 ( )(按递增序)。
A.下面的B,C,D都不对。 B.9,7,8,4,-1,7,15,20
C.20,15,8,9,7,-1,4,7 D. 9,4,7,8,7,-1,15,20
15) 下列四个序列中,哪一个是堆( )。
A. 75,65,30,15,25,45,20,10 B. 75,65,45,10,30,25,20,15
C. 75,45,65,30,15,25,20,10 D. 75,45,65,10,25,30,20,15
2. 填空题
16) 在顺序表(8,11,15,19,25,26,30,33,42,48,50)中,用二分(折半)法查找关键字20,需做的关键字比较次数为 次.
17) 查找表分为哪两种: 和 。
18) 一棵m阶B-树,每个结点包含的键值最多为 个。
19) 排序算法一般分为插入排序,交换排序,选择排序,归并排序和基数排序。其中希尔排序属于 排序,堆排序属于 排序。
20) 有一组数据(15,9,7,8,20,-1,7,4),该序列第二趟快速排序序列为
。
21) 在哈希函数H(key)=key%p中,p值最好取__________。
3. 分析题
22) 假定对有序表:(3,4,5,7,24,30,42,54,63,72,87,95)进行折半查找,试回答下列问题:
(1) 画出描述折半查找过程的判定树;
(2) 若查找元素54,需依次与哪些元素比较?
(3) 若查找元素90,需依次与哪些元素比较?
(4) 假定每个元素的查找概率相等,求查找成功时的平均查找长度。
23) 二叉查找树的数据输入序列为{65,40,27,12,81,54,29,33}。回答以下问题,
(1)画出该序列对应的二叉查找树,并标示平衡因子。
(2)通过旋转算法,画出该二叉查找树对应的平衡二叉树,并计算平衡后的平均查找长度ASL.
24) 已知一组关键字为(19,14,23,01,68,20,84,27,55,11,10,79)按哈希函数 H(Key)=Key MOD 13和线性探测再散列处理冲突的方法在地址空间A[0..15]中构造哈希表,并计算等概率条件下的平均查找长度。
25) 已知输入数据序列为{20,33,-7,11,82,40,8,52,16},试回答以下问题。
(1) 将该输入序列调整为大顶堆。并画出
该大顶堆对应的完全二叉树。
(2) 写出第二趟堆排序后的数据序列。
保持青春的秘诀,是有一颗不安分的心。
4. 程序设计题
26) 写出希尔排序的算法程序
27) 写出快速排序的算法程序
保持青春的秘诀,是有一颗不安分的心。