(题)数据结构复习题_ch10
数据结构复习题附答案

数据结构复习题附答案一.是非题1. 数据结构(应该是抽象数据类型)可用三元式表示(D,S,P)。
其中:D是数据对象,S 是D上的关系,P是对D的基本操作集。
(f)2 简单地说,数据结构是带有结构的数据元素的集合。
(t)3 判断带头结点的非空循环单链表(头指针为L)中指针p所指结点是最后一个元素结点的条件是:p->next==L。
(t)4 线性表的链式存储结构具有可直接存取表中任一元素的优点。
(f)5 线性表的顺序存储结构优于链式存储结构。
(f)6. 在单链表P指针所指结点之后插入S结点的操作是:P->next= S ; S-> next = P->next;。
(f)(顺序弄反了S-> next = P->next; P->next= S ;)7 对于插入、删除而言,线性表的链式存储优于顺序存储。
(t)8. 顺序存储方式的优点是存储密度大,且插入、删除运算效率高。
(f)9. 栈和队列是操作上受限制的线性表。
(t)10. 队列是与线性表完全不同的一种数据结构。
(f)(栈和队列是操作上受限制的线性表)11. 队列是一种操作受限的线性表,凡对数据元素的操作仅限一端进行。
(f)(两端)12. 栈和队列也是线性表。
如果需要,可对它们中的任一元素进行操作。
(f)( “如果需要,可对它们中的任一元素进行操作.” 这里的意思是在O(1)的时间来读和改某个元素。
比如数组的直接索引。
栈:如果需要,每一次只能对栈顶的元素进行操作队列:如果需要,每一次只能对两端,或者只能对队列头的元素进行操作。
)13. 栈是限定仅在表头进行插入和表尾进行删除运算的线性表。
(f)14. 二叉树中每个结点有两个子结点,而对一般的树,则无此限制,所以,二叉树是树的特殊情形。
(f)(二叉树和树相互独立)15 二叉树是一棵结点的度最大为二的树。
(f)(二叉树和树相互独立)16 赫夫曼树中结点个数一定是奇数。
数据结构各章复习题与答案

第二章线性表一.名词解释线性结构 2.数据结构的顺序实现 3.顺序表 4.链表二、填空题1.为了便于讨论,有时将含n(n>=0)个结点的线性结构表示成(a1,a2,……an),其中每个ai 代表一个______。
a1称为______结点,an称为______结点,i称为ai在线性表中的________或______。
对任意一对相邻结点ai 、ai┼1(1<=i<n),ai称为ai┼1的直接______ai┼1称为ai的直接______。
2.线性结构的基本特征是:若至少含有一个结点,则除起始结点没有直接______外,其他结点有且仅有一个直接______;除终端结点没有直接______外,其它结点有且仅有一个直接______.3.表长为O的线性表称为______4.线性表典型的基本运算包括:______、______、______、______、______、______等六种。
5.顺序表的类型定义可经编译转换为机器级。
假定每个datatype类型的变量占用k(k>=1)个内存单元,其中,b是顺序表的第一个存储结点的第一个单元的内存地址,那么,第i个结点ai的存储地址为______。
6.以下为顺序表的插入运算,分析算法,请在______处填上正确的语句。
Void insert_sqlist(sqlist L,datatype x,int i)/*将X插入到顺序表L的第i-1个位置*/{ if( st == maxsize) error(“表满”);if((i<1)||(i>st+1))error(“非法位置”);for(j=st;j>=i;j--)______;L.data[i-1]=x;st=st+1;}7.对于顺序表的插入算法insert_sqlist来说,若以结点移动为标准操作,则插入算法的最坏时间复杂性为________,量级是________。
插入算法的平均时间复杂性为________,平均时间复杂性量级是________。
最新《数据结构》试题及答案(10套)

一、单选题(每题 2 分,共20分)1. 1.对一个算法的评价,不包括如下(B)方面的内容。
A.健壮性和可读性B.并行性C.正确性D.时空复杂度2. 2.在带有头结点的单链表HL中,要向表头插入一个由指针p指向的结点,则执行(A )。
A. p->next=HL->next; HL->next=p;B. p->next=HL; HL=p;C. p->next=HL; p=HL;D. HL=p; p->next=HL;3. 3.对线性表,在下列哪种情况下应当采用链表表示?( B )A.经常需要随机地存取元素B.经常需要进行插入和删除操作C.表中元素需要占据一片连续的存储空间D.表中元素的个数不变4. 4.一个栈的输入序列为1 2 3,则下列序列中不可能是栈的输出序列的是( C )A. 2 3 1B. 3 2 1C. 3 1 2D. 1 2 35. 5.AOV网是一种(D)。
A.有向图B.无向图C.无向无环图D.有向无环图6. 6.采用开放定址法处理散列表的冲突时,其平均查找长度(B)。
A.低于链接法处理冲突 B. 高于链接法处理冲突C.与链接法处理冲突相同D.高于二分查找7.7.若需要利用形参直接访问实参时,应将形参变量说明为(D)参数。
A.值B.函数C.指针D.引用8.8.在稀疏矩阵的带行指针向量的链接存储中,每个单链表中的结点都具有相同的(A)。
A.行号B.列号C.元素值D.非零元素个数9.9.快速排序在最坏情况下的时间复杂度为(D)。
A.O(log2n) B.O(nlog2n) C.0(n) D.0(n2)10.10.从二叉搜索树中查找一个元素时,其时间复杂度大致为( C )。
A. O(n)B. O(1)C. O(log2n)D. O(n2)二、运算题(每题 6 分,共24分)1. 1.数据结构是指数据及其相互之间的______________。
当结点之间存在M对N(M:N)的联系时,称这种结构为_____________________。
《数据结构》期末考试复习题及参考答案

数据结构复习题(课程代码 252259)一、填空题(本大题共40小题)1.队列中是按照______先进先出______的原则进行数据元素的增删。
2.___栈__又称为LIFO表。
3.在顺序存储的完全二叉树中,若编号为i的结点有左孩子结点,则其右孩子结点的编号为___2i+1___。
4.存储地址与关键字之间存在某种映射关系的存储结构为_______散列存储结构_______。
5.在串S=“structure”中,以r为首字符的子串有_9_个。
6.设有整型二维数组M[4][3],每个元素(整数)占2个存储单元,元素按行的顺序存储,数组的起始地址为200,元素M[1][1]的地址是___208____。
7.在一个具有n个顶点的无向完全图中,包含有___ n(n-1)/2_____条边,在一个具有n个顶点的有向完全图中,包含有__ n(n-1)______条边。
8.假定一个线性表为(12,23,74,55,63,40),若按Key % 4条件进行划分,使得同一余数的元素成为一个子表,则得到的四个子表分别为_____(12,40)()(74)(23,55,63)____。
9.向一棵B_树插入元素的过程中,若最终引起树根结点的分裂,则新树比原树的高度____增加1______。
10.在堆排序的过程中,对任一分支结点进行筛运算的时间复杂度为__ O(log2n)______,整个堆排序过程的时间复杂度为__ O(nlog2n)______。
11.在快速排序、堆排序、归并排序中,____归并_____排序是稳定的。
12.一棵深度为5的满二叉树中的结点数为_______31_______个。
13.在含n个顶点和e条边的无向图的邻接矩阵中,非零元素的个数为__2e __。
14.从一棵二叉排序树中查找一个元素时,若元素的值大于根结点的值,则继续向____右子树____查找。
15._____拓朴排序______可以判断出一个有向图中是否有环。
(完整word版)数据结构C语言版期末考试试题(有答案)

“数据结构”期末考试试题一、单选题(每小题2分,共12分)1.在一个单链表HL中,若要向表头插入一个由指针p指向的结点,则执行( )。
A. HL=ps p一>next=HLB. p一>next=HL;HL=p3C. p一>next=Hl;p=HL;D. p一>next=HL一>next;HL一>next=p;2.n个顶点的强连通图中至少含有( )。
A.n—l条有向边B.n条有向边C.n(n—1)/2条有向边D.n(n一1)条有向边3.从一棵二叉搜索树中查找一个元素时,其时间复杂度大致为( )。
A.O(1)B.O(n)C.O(1Ogzn)D.O(n2)4.由权值分别为3,8,6,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为( )。
A.24 B.48C. 72 D. 535.当一个作为实际传递的对象占用的存储空间较大并可能需要修改时,应最好把它说明为( )参数,以节省参数值的传输时间和存储参数的空间。
A.整形B.引用型C.指针型D.常值引用型·6.向一个长度为n的顺序表中插人一个新元素的平均时间复杂度为( )。
A.O(n) B.O(1)C.O(n2) D.O(10g2n)二、填空题(每空1分,共28分)1.数据的存储结构被分为——、——、——和——四种。
2.在广义表的存储结构中,单元素结点与表元素结点有一个域对应不同,各自分别为——域和——域。
3.——中缀表达式 3十x*(2.4/5—6)所对应的后缀表达式为————。
4.在一棵高度为h的3叉树中,最多含有——结点。
5.假定一棵二叉树的结点数为18,则它的最小深度为——,最大深度为——· 6.在一棵二叉搜索树中,每个分支结点的左子树上所有结点的值一定——该结点的值,右子树上所有结点的值一定——该结点的值。
7.当向一个小根堆插入一个具有最小值的元素时,该元素需要逐层——调整,直到被调整到——位置为止。
数据结构试题及答案(10套)

数据结构试题及答案(10套)数据结构试题及答案(10套)根据您的需求,我为您准备了10套数据结构试题及答案。
每套试题包含以下几个部分:选择题、填空题、编程题及答案解析。
下面是试题的具体内容:第一套试题:选择题:1. 在数据结构中,什么是栈?A. 先进先出(FIFO)的数据结构B. 后进先出(LIFO)的数据结构C. 随机访问的数据结构D. 无序排列的数据结构2. 以下哪种操作与队列的特性不相符?A. 入队操作B. 出队操作C. 查找操作D. 获取队首元素填空题:1. ______ 是一种动态集合,支持插入、删除和查找等操作。
2. 在二叉搜索树中,中序遍历的结果是________。
编程题:实现一个栈的数据结构,并包含以下操作:- push(x):将元素 x 压入栈中- pop():删除栈顶的元素并返回该元素- top():获取栈顶元素的值- empty():检查栈是否为空答案解析:选择题:B、C填空题:1. 集合 2. 升序序列编程题:略第二套试题:选择题:1. 以下哪个数据结构是一种广度优先搜索的应用?A. 栈B. 队列C. 堆D. 链表2. 在链表中,如果要删除一个节点,只给出该节点的指针,那么需要通过什么方式完成删除操作?A. 直接删除该节点B. 指向该节点的前一个节点的指针C. 指向该节点的后一个节点的指针D. 无法完成删除操作填空题:1. 树是一种________的数据结构。
2. 二叉树每个节点最多有______个子节点。
编程题:实现一个队列的数据结构,并包含以下操作:- enqueue(x):将元素 x 入队- dequeue():删除队首的元素并返回该元素- peek():获取队首元素的值- is_empty():检查队列是否为空答案解析:选择题:B、B填空题:1. 分层组织 2. 2编程题:略(以下部分省略)通过以上的题目,您可以对数据结构的知识点进行综合练习和复习。
每套试题包含了不同难度和类型的题目,能够帮助您全面了解和掌握数据结构的概念和操作。
数据结构期末复习十套习题(赋详细答案)

数据结构试卷(一)一、单选题(每题2 分,共20分)1.栈和队列的共同特点是( )。
A.只允许在端点处插入和删除元素B.都是先进后出C.都是先进先出D.没有共同点2.用链接方式存储的队列,在进行插入运算时( ).A. 仅修改头指针B. 头、尾指针都要修改C. 仅修改尾指针D.头、尾指针可能都要修改3.以下数据结构中哪一个是非线性结构?( )A. 队列B. 栈C. 线性表D. 二叉树4.设有一个二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个空间,问A[3][3](10)存放在什么位置?脚注(10)表示用10进制表示。
A.688 B.678 C.692 D.6965.树最适合用来表示( )。
A.有序数据元素B.无序数据元素C.元素之间具有分支层次关系的数据D.元素之间无联系的数据6.二叉树的第k层的结点数最多为( ).A.2k-1 B.2K+1 C.2K-1 D. 2k-17.若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A[3]的比较序列的下标依次为( )A. 1,2,3B. 9,5,2,3C. 9,5,3D. 9,4,2,38.对n个记录的文件进行快速排序,所需要的辅助存储空间大致为A. O(1)B. O(n)C. O(1og2n)D. O(n2)9.对于线性表(7,34,55,25,64,46,20,10)进行散列存储时,若选用H(K)=K %9作为散列函数,则散列地址为1的元素有()个,A.1 B.2 C.3 D.410.设有6个结点的无向图,该图至少应有( )条边才能确保是一个连通图。
A.5B.6C.7D.8二、填空题(每空1分,共26分)1.通常从四个方面评价算法的质量:_________、_________、_________和_________。
2.一个算法的时间复杂度为(n3+n2log2n+14n)/n2,其数量级表示为________。
数据结构考试试题库含答案解析

数据结构考试试题库含答案解析数据结构习题集含答案⽬录⽬录 (1)选择题 (2)第⼀章绪论 (2)第⼆章线性表 (4)第三章栈和队列 (6)第四章串 (7)第五章数组和⼴义表 (8)第六章树和⼆叉树 (8)第七章图 (11)第⼋章查找 (13)第九章排序 (14)简答题 (19)第⼀章绪论 (19)第⼆章线性表 (24)第三章栈和队列 (26)第四章串 (28)第五章数组和⼴义表 (29)第六章树和⼆叉树 (31)第七章图 (36)第⼋章查找 (38)第九章排序 (39)编程题 (41)第⼀章绪论 (41)第⼆章线性表 (41)第三章栈和队列 (52)第四章串 (52)第五章数组和⼴义表 (52)第六章树和⼆叉树 (52)第七章图 (52)第⼋章查找 (52)第⼀章绪论1.数据结构这门学科是针对什么问题⽽产⽣的?(A )A、针对⾮数值计算的程序设计问题B、针对数值计算的程序设计问题C、数值计算与⾮数值计算的问题都针对D、两者都不针对2.数据结构这门学科的研究内容下⾯选项最准确的是(D )A、研究数据对象和数据之间的关系B、研究数据对象C、研究数据对象和数据的操作D、研究数据对象、数据之间的关系和操作3.某班级的学⽣成绩表中查得张三同学的各科成绩记录,其中数据结构考了90分,那么下⾯关于数据对象、数据元素、数据项描述正确的是(C )A、某班级的学⽣成绩表是数据元素,90分是数据项B、某班级的学⽣成绩表是数据对象,90分是数据元素C、某班级的学⽣成绩表是数据对象,90分是数据项D、某班级的学⽣成绩表是数据元素,90分是数据元素4.*数据结构是指(A )。
A、数据元素的组织形式B、数据类型C、数据存储结构D、数据定义5.数据在计算机存储器内表⽰时,物理地址与逻辑地址不相同,称之为(C )。
A、存储结构B、逻辑结构C、链式存储结构D、顺序存储结构6.算法分析的⽬的是(C )A、找出数据的合理性B、研究算法中的输⼊和输出关系C、分析算法效率以求改进D、分析算法的易懂性和⽂档型性7.算法分析的主要⽅法(A )。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Ch10索引与散列一、选择题1、单项选择题[在备选答案中只有一个是正确的, 将其选出并把它的标号写在题后的括号内](1)以下哪一个术语与数据的存储结构无关? ()A、顺序表B、链表C、散列表D、队列(2)比较次数与排序码的初始排列状态无关的排序方法是()A、直接插入排序B、起泡排序C、快速排序D、直接选择排序(3)稳定的排序方法是()A、直接插入排序和快速排序B、二分法插入排序和起泡排序C、直接选择排序和直接插入排序D、树形选择排序和Shell排序(4)既希望较快的搜索又便于线性表动态变化的搜索方法是()A、顺序搜索B、折半搜索C、索引顺序搜索D、散列法搜索(5)对n个记录的线性表进行快速排序,为减少算法的递归深度,以下叙述哪一个是正确的? ()A、每次分区后, 先处理较短的部分。
B、每次分区后, 先处理较长的部分。
C、要求待排序的记录已经排序, 而与算法每次分区后的处理顺序。
D、以上三者都不对。
2、单项选择题[备选答案中只有一个是正确的,将其选出并把它的标号写在题后括号内] (1)请指出在序列{ 2, 5, 7, 10, 14, 15, 18, 23, 35, 41, 52 } 中,用折半搜索法搜索关键码12时需做多少次关键码比较? ()A、2B、3C、4D、5(2)对包含N个元素的散列表进行搜索,平均搜索长度:()A、为O(log2N)B、为O(N)C、不直接依赖于ND、上述三者都不是(3)设存在一个字符序列{ Q, H, C, Y, P, A, M, S, R, D, F, X },问新序列{ F, H, C, D, P, A,M, Q, R, S, Y, X }是下列哪个排序法一趟排序的结果。
()A、起泡排序B、初始步长为4的shell排序C、直接插入排序D、以第一个元素为分界元素的快速排序(4)下面关于图的存储表示的叙述中,哪一个是正确的()A、用相邻矩阵存储图,占用存储空间数只与图中结点个数有关,与边数无关B、用相邻矩阵存储图,占用存储空间数只与图中边数有关,与结点个数无关C、用邻接表存储图,占用存储空间数只与图中结点个数有关,与边数无关D、用邻接表存储图,占用存储空间数只与图中边数有关,结点个数无关(5)下列的树形结构中,二叉搜索树是()二、判断题3、判断下列叙述的对错。
如果正确,在题前的括号内填入“√”,否则填入“⨯”。
(1)在向二叉搜索树(即二叉排序树)中插入新结点时, 新结点必须作为叶结点插入。
(2)若将一批杂乱无章的数据按堆结构组织起来, 则堆中各数据必然按自小到大的顺序排列起来。
(3)在散列法中采取开散列(即链地址)法解决冲突时,其装载因子的取值一定在(0, 1)之间。
(4)在散列法中采取闭散列(即开地址)法解决冲突时,一般不要立刻做物理删除,否则在搜索时会发生错误。
(5)对于一棵有1999999个关键码的199阶B树,其最大层数为4。
4、判断下列各叙述的正误。
正确的打“√”,错误的打“×”。
(1)在向二叉搜索树中插入新结点时, 新结点必须作为叶结点插入。
(2)若将一批杂乱无章的数据按堆结构组织起来, 则堆中各数据必然按自小到大的顺序排列起来。
(3)在散列法中,一个可用的散列函数必须保证绝对不产生冲突。
(4)在散列法中采取开散列(链地址)法来解决冲突时, 其装载因子的取值一定在(0,1)之间。
(5)在散列法中采取(开地址)法来解决冲突时, 一般不要立刻做物理删除, 否则在搜索时会发生错误。
5、判断下列各叙述的正误。
正确的打“√”,错误的打“×”。
(1)树结构和二叉树结构都是树形结构, 所以它们是相同的数据结构。
(2)最佳二叉搜索树的任何子树都是最佳二叉搜索树。
(3)满二叉树的结点个数必为奇数。
(4)B树是一种动态索引结构, 它既适用于随机检索, 也适用于顺序检索。
(5)静态索引结构是指系统运行时文件的索引结构不会发生改变, 而文件的内容是可以改变的。
三、填空题6、填空题[本题答在空格内,要求填写内容尽可能简练和准确](1)在用于表示有向图的相邻矩阵中, 对第i行的元素进行累加, 可得到第i 个顶点的(①)度, 而对第j列的元素进行累加, 可得到第j个顶点的(②)度。
(2)一个连通图的生成树是该图的(③)连通子图。
若这个连通图有n个顶点, 则它的生成树有(④)条边。
(3)给定序列{100, 86, 48, 73, 35, 39, 42, 57, 66, 21}, 按堆结构的定义, 则它一定(⑤)堆。
(4)在进行直接插入排序时, 其数据比较次数与数据的初始排列(⑥)关;而在进行直接选择排序时,其数据比较次数与数据的初始排列(⑦)关。
(5)利用关键码分别为10, 20, 30, 40的四个结点,能构造出(⑧)种不同的二叉搜索树。
四、简答题7、设有10000个记录, 通过分块划分为若干子表并建立索引, 那么为了提高搜索效率, 每一个子表的大小应设计为多大?8、设有150个记录要存储到散列表中, 要求利用线性探查法解决冲突, 同时要求找到所需记录的平均比较次数不超过2次。
试问散列表需要设计多大?设α是散列表的装载因子,则有ASLsucc =+-12111()α9、下图是一个3阶B树。
试分别画出在插入65、15、40、30之后B树的变化。
10、下图是一个3阶B树。
试分别画出在删除50、40之后B树的变化。
12、设有一棵B+树,其内部结点最多可存放100个子女,叶结点最多可存储15个记录。
对于1, 2, 3, 4, 5层的B+树,最多能存储多少记录,最少能存储多少记录。
13、设有150个记录要存储到散列表中, 并利用线性探查法解决冲突, 要求找到所需记录的平均比较次数不超过2次。
试问散列表需要设计多大?(设α是散列表的装载因子,则有ASL succ = (1+1/ (1-α))/2)。
14、设散列表为HT[13], 待插入的关键码序列为{12, 23, 45, 57, 20, 03, 78, 31, 15, 36},散列函数为H (key)= key %13。
现采用线性探查法解决冲突,试画出相应的散列表, 并计算等概率下搜索成功的平均搜索长度和搜索不成功的平均搜索长度。
15、若设散列表的大小为m,利用散列函数计算出的散列地址为h = hash(x)。
试证明:如果二次探查的顺序为(h + q2), (h + (q-1)2), …, (h+1), h, (h-1), …, (h-q2),其中,q = (m-1)/2。
因此在相继被探查的两个桶之间地址相减所得的差取模(%m)的结果为m-2, m-4, m-6, …, 5, 3, 1, 1, 3, 5, …, m-6, m-4, m-2。
16、用可扩充散列法组织文件时,若目录深度为d,指向某个页块的指针有n个,则该页块的局部深度有多大?17、下图是一个3阶B树。
(1)画出在插入12后的树形及再插入53后的树形;(2)在(1)插入完成的基础上,先后删除50和20。
分别画出删除50后的和删除20后的树形。
18、给定一组记录,其关键码为字符。
记录的插入顺序为{ C, S, D, T, A, M, P, I, B, W, N, G, U, R, K, E, H, O, L, J },给出插入这些记录后的4阶B+树。
假定叶结点最多可存放3个记录。
19、设散列表为HT[13], 散列函数为H (key)= key mod 13。
采用双散列法解决冲突, 对下列关键码序列12, 23, 45, 57, 20, 03, 78, 31, 15, 36 造表。
若设再散列函数为RH (key)= (7*key)% 10 + 1, 寻找下一个空位的公式为H i = (H i-1 + RH (key))% 13, H1 = H (key)。
画出相应的散列表, 并计算等概率下搜索成功的平均搜索长度。
20、设有15000个记录需放在散列文件中,文件中每个桶内各页块采用链接方式连结,每个页块可存放30个记录。
若采用按桶散列,且要求搜索到一个已有记录的平均读盘时间不超过1.5次,则该文件应设置多少个桶?21、设有1000个值在1到10000的整数,试设计一个利用散列方法的算法,以最少的数据比较次数和移动次数对它们进行排序。
22、设一组对象的关键码为{ 69, 115, 110, 255, 185, 143, 208, 96, 63, 175, 160, 99 }。
要求用散列函数将这些对象的关键码转换成二进制地址,存入用可扩充散列法组织的文件里。
定义散列函数为hash(key)= key % 64, 二进制地址取6位。
设每个页块可容纳4个对象。
(1)置目录表的初始状态,使目录表的深度为3。
(2)按题中所给的顺序,将各个对象插入到可扩充散列文件中。
试画出每次页块分裂或目录扩充时的状态和文件的最后状态。
23、m = 2的平衡m路搜索树是A VL树,m = 3的平衡m路搜索树是2-3树。
它们的叶结点必须在同一层吗?m阶B树是平衡m路搜索树,反过来,平衡m路搜索树一定是B树吗?为什么?——(page 232)。