(完整word版)数据结构习题库汇总.docx

合集下载

(完整word版)数据结构试题集(包含答案完整版)

(完整word版)数据结构试题集(包含答案完整版)

第一章概论一、选择题1、研究数据结构就是研究(D )。

A. 数据的逻辑结构B。

数据的存储结构C. 数据的逻辑结构和存储结构D。

数据的逻辑结构、存储结构及其基本操作2、算法分析的两个主要方面是( A )。

A。

空间复杂度和时间复杂度 B. 正确性和简单性C。

可读性和文档性D。

数据复杂性和程序复杂性3、具有线性结构的数据结构是( D )。

A。

图B。

树C。

广义表D。

栈4、计算机中的算法指的是解决某一个问题的有限运算序列,它必须具备输入、输出、( B )等5个特性。

A. 可执行性、可移植性和可扩充性B。

可执行性、有穷性和确定性C。

确定性、有穷性和稳定性 D. 易读性、稳定性和确定性5、下面程序段的时间复杂度是( C )。

for(i=0;i<m;i++)for(j=0;j〈n;j++)a[i][j]=i*j;A. O(m2) B。

O(n2) C。

O(m*n) D. O(m+n)6、算法是(D )。

A。

计算机程序 B. 解决问题的计算方法C。

排序算法 D. 解决问题的有限运算序列7、某算法的语句执行频度为(3n+nlog2n+n2+8),其时间复杂度表示( C )。

A。

O(n) B. O(nlog2n) C。

O(n2) D. O (log2n)8、下面程序段的时间复杂度为( C ).i=1;while(i<=n)i=i*3;A. O(n)B。

O(3n) C。

O(log3n) D. O(n3)9、数据结构是一门研究非数值计算的程序设计问题中计算机的数据元素以及它们之间的()和运算等的学科。

A. 结构B。

关系C。

运算D。

算法10、下面程序段的时间复杂度是(A )。

i=s=0;while(s<n){i++;s+=i;}A. O(n) B。

O(n2)C。

O(log2n)D。

O(n3)11、抽象数据类型的三个组成部分分别为(A)。

A. 数据对象、数据关系和基本操作B. 数据元素、逻辑结构和存储结构C. 数据项、数据元素和数据类型D. 数据元素、数据结构和数据类型12、通常从正确性、易读性、健壮性、高效性等4个方面评价算法的质量,以下解释错误的是()。

数据结构试题集(包含答案-完整版)

数据结构试题集(包含答案-完整版)

数据结构试题集(包含答案-完整版)数据结构试题集(包含答案-完整版)1. 单选题1) 数据结构是一种()。

a) 存储结构b) 算法c) 数据模型d) 网络答案:c) 数据模型解析:数据结构是一种用于组织和存储数据的方式,描述了数据之间的关系以及对数据的操作。

2) 以下哪种数据结构可以通过索引直接访问元素?a) 链表b) 队列c) 栈d) 数组答案:d) 数组解析:数组是一种线性数据结构,可以通过索引直接访问指定位置的元素。

2. 多选题1) 哪些数据结构属于非线性结构?()a) 队列b) 树c) 栈d) 图答案:b) 树d) 图解析:线性结构中的元素存在一对一的关系,非线性结构中的元素存在一对多或多对多的关系,树和图属于非线性结构。

2) 下列哪些操作可以在栈上进行?()a) 入栈b) 出栈c) 查找d) 删除答案:a) 入栈b) 出栈解析:栈是一种后进先出(LIFO)的数据结构,只能在栈顶进行插入和删除操作。

3. 简答题1) 请简要介绍线性表和非线性表。

答案:线性表是数据元素的一个有限序列,元素之间存在一对一的关系。

非线性表是指元素之间存在一对多或多对多的关系,如树和图。

2) 请解释什么是时间复杂度和空间复杂度。

答案:时间复杂度是衡量算法执行效率的度量,表示算法的运行时间随输入规模增长的速度。

空间复杂度是指算法执行过程中所需的存储空间随输入规模增长的速度。

4. 编程题题目:实现一个栈,包含push、pop和getMin三个操作,要求时间复杂度为O(1)。

答案:class MinStack:def __init__(self):self.stack = []self.min_stack = []def push(self, x):self.stack.append(x)if not self.min_stack or x <= self.min_stack[-1]:self.min_stack.append(x)def pop(self):if self.stack.pop() == self.min_stack[-1]:self.min_stack.pop()def getMin(self):return self.min_stack[-1]解析:在栈的基础上,使用一个辅助栈min_stack来记录当前栈中的最小值。

(完整word版)数据结构练习题

(完整word版)数据结构练习题

●判断题(一)1.数据元素是数据最小单位。

错2.数据对象就是一组数据元素的集合。

错3.任何数据结构都具备三个基本运算:插入、删除和查找。

错4.数据对象是由有限个类型相同的数据元素构成的。

对5.数据的逻辑结构与各数据元素在计算机中如何存储有关。

错6.如果数据元素值发生改变,则数据的逻辑结构也随之改变。

错7.逻辑结构相同的数据,可以采用多种不同的存储方法。

对8.逻辑结构不相同的数据,必须采用不同的存储方法来储存。

错9.数据的逻辑结构是指数据元素的各数据项之间的逻辑关系。

错●判断题(二)1.顺序存储方式只能用于存储线性结构。

错2.数据元素是数据最小的单位。

错3.数据结构是带有结构的数据元素的集合。

对4.数据的逻辑结构是指各数据元素之间的逻辑关系。

对5.数据结构、数据元素、数据项在计算机中的表示分别称为存储结构、节点和数据域。

对6.数据的物理结构是指数据在计算机内的实际的存储形式。

对●判断题一1.分配给单链表的内存单元地址必须是连续的。

错2.与顺序表相比,在链表中顺序访问所有节点,其算法的效率比较低。

错3.从长度为n的顺序表中删除任何一个元素,时间复杂度都是O(n)。

错4.向顺序表中插入一个元素,平均要移动大约一半的元素。

对5.凡是为空的单链表都是不含任何节点的。

错6.如果单链表带有头结点,则插入操作永远不会改变头节点指针的值。

对7.在循环单链表中,任何一个节点的指针域都不可能为空。

对●判断题二1.顺序存储方式的特点是存储密度大且插入、删除运算效率高。

错2.线性表的顺序存储结构优于链式存储结构。

错3.顺序存储结构属于静态结构而链式存储结构属于动态结构。

对4.由于顺序存储结构要求连续的存储区域,所以再存储管理上不够灵活。

对5.对于单链表来说,只有从头节点开始才能扫描表中全部节点。

对6.对于循环单链表来说,从表中任一节点出发都能扫描整个链表。

对7.双链表的特点是很容易找任一节点的前驱和后继。

对第三章1.栈底元素是不能删除的元素。

(完整版)数据结构试题包含答案

(完整版)数据结构试题包含答案

一、一、单选题(每题2 分,共20分)1. 1. 栈和队列的共同特点是( )。

A.只允许在端点处插入和删除元素B.都是先进后出C.都是先进先出D.没有共同点2. 2. 用链接方式存储的队列,在进行插入运算时( ).A. 仅修改头指针B. 头、尾指针都要修改C. 仅修改尾指针D.头、尾指针可能都要修改3. 3. 以下数据结构中哪一个是非线性结构?( )A. 队列B. 栈C. 线性表D. 二叉树4. 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. 5. 树最适合用来表示( )。

A.有序数据元素B.无序数据元素C.元素之间具有分支层次关系的数据D.元素之间无联系的数据6. 6. 二叉树的第k层的结点数最多为( ).A.2k-1 B.2K+1 C.2K-1 D. 2k-17.7. 若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A[3]的比较序列的下标依次为( )A. 1,2,3B. 9,5,2,3C. 9,5,3D. 9,4,2,38.8. 对n个记录的文件进行快速排序,所需要的辅助存储空间大致为A. O(1)B. O(n)C. O(1og2n)D. O(n2)9.9. 对于线性表(7,34,55,25,64,46,20,10)进行散列存储时,若选用H(K)=K %9作为散列函数,则散列地址为1的元素有()个,A.1 B.2 C.3 D.410.10. 设有6个结点的无向图,该图至少应有( )条边才能确保是一个连通图。

A.5B.6C.7D.8二、二、填空题(每空1分,共26分)1. 1. 通常从四个方面评价算法的质量:_________、_________、_________和_________。

(完整版)数据结构复习题(附答案)

(完整版)数据结构复习题(附答案)

(完整版)数据结构复习题(附答案)⼀、算法设计题(每题15分,共60分)答题要求:①⽤⾃然语⾔说明所采⽤算法的思想;②给出每个算法所需的数据结构定义,并做必要说明;③写出对应的算法程序,并做必要的注释。

1、有⼀个带头结点的单链表,每个结点包括两个域,⼀个是整型域info,另⼀个是指向下⼀个结点的指针域next。

假设单链表已建⽴,设计算法删除单链表中所有重复出现的结点,使得info域相等的结点只保留⼀个。

3、约瑟夫环问题(Josephus问题)是指编号为1、2、…,n的n(n>0)个⼈按顺时针⽅向围坐成⼀圈,现从第s个⼈开始按顺时针⽅向报数,数到第m个⼈出列,然后从出列的下⼀个⼈重新开始报数,数到第m的⼈⼜出列,…,如此重复直到所有的⼈全部出列为⽌。

现要求采⽤循环链表结构设计⼀个算法,模拟此过程。

4、编程实现单链表的就地逆置。

23.在数组 A[1..n]中有n个数据,试建⽴⼀个带有头结点的循环链表,头指针为h,要求链中数据从⼩到⼤排列,重复的数据在链中只保存⼀个.5、设计⼀个尽可能的⾼效算法输出单链表的倒数第K个元素。

3、假设以I和O分别表⽰⼊栈和出栈操作。

栈的初态和终态均为空,⼊栈和出栈的操作序列可表⽰为仅由I和O组成的序列,称可以操作的序列为合法序列,否则称为⾮法序列。

(15分)(1)下⾯所⽰的序列中哪些是合法的?A. IOIIOIOOB. IOOIOIIOC. IIIOIOIOD. IIIOOIOO(2)通过对(1)的分析,写出⼀个算法,判定所给的操作序列是否合法。

若合法,返回true,否则返回false(假定被判定的操作序列已存⼊⼀维数组中)。

5、设从键盘输⼊⼀整数的序列:a1, a2, a3,…,an,试编写算法实现:⽤栈结构存储输⼊的整数,当ai≠-1时,将ai进栈;当ai=-1时,输出栈顶整数并出栈。

算法应对异常情况(⼊栈满等)给出相应的信息。

设有⼀个背包可以放⼊的物品重量为S,现有n件物品,重量分别为W1,W2,...,W n。

(完整word版)数据结构考试题5

(完整word版)数据结构考试题5

要求:所有的题目的解答均写在答题纸上,需写清楚题目的序号。

每张答题纸都要写上姓名和学号。

一、单项选择题(每小题2分,共20小题,共计40分)1.某算法的空间复杂度为0(1),则。

A.该算法执行不需要任何辅助空间B.该算法执行所需辅助空间大小与问题规模n无关C.该算法执行不需要任何空间D.该算法执行所需全部空间大小与问题规模n无关2.在长度为n的顺序表中插入一个元素,对应算法的时间复杂度为。

A.0(1)B.O(log2n)C.0(n)D.0(n2)3.设线性表中有n个元素,以下运算中,在单链表上实现要比在顺序表上实现效率更高。

A.删除指定位置元素的后一个元素B.在最后一个元素的后面插入一个新元素C.顺序输出前k个元素D.交换第i个元素和第n-i+1个元素的值(i=1, 2,…,n)4.以下数据结构中元素之间为非线性关系的是。

A.栈B.队列C.线性表D.以上都不是5.若一个栈用数组data[1..n]存储,初始栈顶指针top为n+1,则以下元素x进栈的正确操作是。

A.top++;data[top]=x;B.data[top]=x;top++;C.top-- ;data[top]=x;D.data[top]=x;top --;6.若某循环队列有队首指针front和队尾指针rear,在队不满时进队操作仅会改变。

A.frontB.rearC.front 和rearD.以上都不队7.设循环队列中数组的下标是0〜N-1,其队头、队尾指针分别为f和r(f指向队首元素的前一位置,r指向队尾元素),则其元素个数为。

A.r-fB.r-f-1C.(r-f)%N+1D.(r-f+N)%N8.设树T的度为4,其中度为1、2、3、4的结点个数分别为4、2、1、1,则T中的叶子结点个数是。

A.5B.6C.7D.89. 一棵哈夫曼树中共有199个结点,它用于多少个字符的编码。

A.99B.100C.101D.19910.设森林F中有4棵树,第1、2、3、4棵树的结点个数分别为a、b、c、d,将森林F转换为一颗二叉树B,则二叉树B根结点的左子树上的结点个数是。

(完整word版)数据结构试卷及答案(word文档良心出品)

(完整word版)数据结构试卷及答案(word文档良心出品)

注意事项:1、下面关于串的叙述中,哪一个是不正确的?( )A .串是字符的有限序列B .空串是由空格构成的串C .模式匹配是串的一种重要运算D .串既可以采用顺序存储,也可以采用链式存储 2、设无向图的顶点个数为n ,则该图最多有( )条边。

A .n-1B .n(n-1)/2C . n(n+1)/2D .0 3、以下数据结构中,( )是非线性数据结构。

A .树B .字符串C .队列D .栈 4、下面关于线性表的叙述中,错误的是哪一个?( )A .线性表采用顺序存储,必须占用一片连续的存储单元。

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

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

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

5、假设以数组A[m]存放循环队列的元素,其头尾指针分别为front 和rear ,则当前队列中的元素个数为( )。

A .(rear-front+m)%mB .rear-front+1C .(front-rear+m)%mD .(rear-front)%m6、在单链表指针为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; 7、设栈的输入序列是1,2,3,4,则( )不可能是其出栈序列。

A .1,2,4,3B .2,1,3,4C .1,4,3,2D .4,3,1,2, 8、广义表(a,(b,c),d,e )的表头和表尾分别为( )。

A .a 和(b,c),d,e B .(a )和(b,c),d,eC .a 和 ((b,c),d,e)D .(a) 和((b,c),d,e)9、栈和队都是( )A .顺序存储的线性结构B .链式存储的非线性结构C .限制存取点的线性结构D .限制存取点的非线性结构 10、从逻辑上可以把数据结构分为( )两大类。

(完整版)数据结构试题及答案

(完整版)数据结构试题及答案

(完整版)数据结构试题及答案《数据结构》⾃考复习思考试题○10⼀、单项选择题(本⼤题共15⼩题,每⼩题2分,共30分)在每⼩题列出的四个备选项中只有⼀个是符合题⽬要求的,请将其代码填写在题后的括号内。

错选、多选或未选均⽆分。

1. 若将数据结构形式定义为⼆元组(K,R),其中K是数据元素的有限集合,则R是K上( ) A. 操作的有限集合 B. 映象的有限集合C. 类型的有限集合D. 关系的有限集合2. 在长度为n的顺序表中删除第i个元素(1≤i≤n)时,元素移动的次数为( )A. n-i+1B. iC. i+1D. n-i3. 若不带头结点的单链表的头指针为head,则该链表为空的判定条件是( )A. head==NULLB. head->next==NULLC. head!=NULLD. head->next==head4. 引起循环队列队头位置发⽣变化的操作是( )A. 出队B. ⼊队C. 取队头元素D. 取队尾元素5. 若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进⾏,则不.可能出现的出栈序列是( )A. 2,4,3,1,5,6B. 3,2,4,1,6,5C. 4,3,2,1,5,6D. 2,3,5,1,6,46. 字符串通常采⽤的两种存储⽅式是( )A. 散列存储和索引存储B. 索引存储和链式存储C. 顺序存储和链式存储D. 散列存储和顺序存储7. 设主串长为n,模式串长为m(m≤n),则在匹配失败情况下,朴素匹配算法进⾏的⽆效位移次数为( )A. mB. n-mC. n-m+1D. n8. ⼆维数组A[12][18]采⽤列优先的存储⽅法,若每个元素各占3个存储单元,且第1个元素的地址为150,则元素A[9][7]的地址为( )A. 429B. 432.C. 435D. 4389. 对⼴义表L=((a,b),(c,d),(e,f))执⾏操作tail(tail(L))的结果是( )A. (e,f)B. ((e,f))C. (f)D. ( )10. 下列图⽰的顺序存储结构表⽰的⼆叉树是( )11. n个顶点的强连通图中⾄少含有( )A. n-1条有向边B. n条有向边C. n(n-1)/2条有向边D. n(n-1)条有向边12. 对关键字序列(56,23,78,92,88,67,19,34)进⾏增量为3的⼀趟希尔排序的结果为( )A. (19,23,56,34,78,67,88,92)B. (23,56,78,66,88,92,19,34)C. (19,23,34,56,67,78,88,92)D. (19,23,67,56,34,78,92,88)13. 若在9阶B-树中插⼊关键字引起结点分裂,则该结点在插⼊前含有的关键字个数为( ) A. 4 B. 5C. 8D. 914. 由同⼀关键字集合构造的各棵⼆叉排序树( )A. 其形态不⼀定相同,但平均查找长度相同B. 其形态不⼀定相同,平均查找长度也不⼀定相同C. 其形态均相同,但平均查找长度不⼀定相同.D. 其形态均相同,平均查找长度也都相同15. ISAM⽂件和VSAM⽂件的区别之⼀是( )A. 前者是索引顺序⽂件,后者是索引⾮顺序⽂件B. 前者只能进⾏顺序存取,后者只能进⾏随机存取C. 前者建⽴静态索引结构,后者建⽴动态索引结构D. 前者的存储介质是磁盘,后者的存储介质不是磁盘⼆、填空题(本⼤题共10⼩题,每空2分,共20分)16. 数据的逻辑结构在计算机存储器内的表⽰,称为数据的____________。

数据结构试题库及答案

数据结构试题库及答案

数据结构试题库及答案一、选择题(每题2分,共20分)1. 在数据结构中,线性表的顺序存储结构通常使用()来存储。

A. 链表B. 栈C. 队列D. 数组答案:D2. 以下哪个算法不是排序算法?A. 快速排序B. 归并排序C. 深度优先搜索D. 堆排序答案:C3. 在二叉树的遍历算法中,先访问根节点,然后遍历左子树,最后遍历右子树的遍历方式是()。

A. 先序遍历B. 中序遍历C. 后序遍历D. 层序遍历答案:A4. 哈希表的冲突解决方法不包括以下哪种?A. 链地址法B. 线性探测法C. 二分查找法D. 再散列法答案:C5. 在图的遍历算法中,广度优先搜索(BFS)使用的辅助数据结构是()。

A. 栈B. 队列C. 堆D. 链表答案:B6. 下列关于堆的描述中,错误的是()。

A. 堆是一种特殊的完全二叉树B. 堆中的每个节点的值都大于其子节点的值C. 堆可以用于实现优先队列D. 堆的插入操作的时间复杂度为O(log n)答案:B7. 在一个长度为n的数组中,使用二分查找算法查找一个元素的最坏情况下的时间复杂度是()。

A. O(1)B. O(n)C. O(n^2)D. O(log n)答案:D8. 以下哪个数据结构不是线性结构?A. 链表B. 栈C. 队列D. 二叉树答案:D9. 以下哪个算法是动态查找表?A. 直接索引B. 顺序查找C. 二分查找D. 哈希表答案:D10. 在图的表示方法中,邻接矩阵表示法的缺点是()。

A. 占用空间大B. 占用空间小C. 插入和删除操作复杂D. 遍历操作复杂答案:A二、填空题(每题2分,共20分)1. 在一个长度为n的数组中,使用顺序查找算法查找一个元素的时间复杂度为________。

答案:O(n)2. 一个具有n个节点的完全二叉树的高度为________。

答案:log2(n) + 1(向上取整)3. 一个长度为n的链表,删除一个节点的时间复杂度为________。

答案:O(1)4. 在图的表示方法中,邻接表表示法的缺点是________。

数据结构Word版

数据结构Word版

第一章习题判断题1.数据元素是数据的最小单位。

( )2.记录是数据处理的最小单位。

( )3.数据的逻辑结构是指数据的各数据项之间的逻辑关系。

( )4.算法的优劣与算法描述语言无关,但与所用计算机有关。

( )5.健壮的算法不会因非法的输入数据而出现莫名其妙的状态。

( )6.算法可以用不同的语言描述,如果用C语言或PASCAL语言等高级语言来描述,则算法实际上就是程序了。

( )7.程序一定是算法。

( )8.数据的物理结构是指数据在计算机内的实际存储形式。

( )9.数据结构的抽象操作的定义与具体实现有关。

( )10.在顺序存储结构中,有时也存储数据结构中元素之间的关系。

( )11.顺序存储方式的优点是存储密度大,且插入、删除运算效率高。

( )12.数据结构的基本操作的设置的最重要的准则是,实现应用程序与存储结构的独立。

( )13.数据的逻辑结构说明数据元素之间的顺序关系,它依赖于计算机的储存结构。

( )答案1.× 2.× 3.× 4.× 5.√6.× 7.× 8.√ 9.× 10.×11.× 12.√ 13.×填空题1.数据的物理结构包括____ 的表示和____ 的表示。

2.对于给定的n个元素,可以构造出的逻辑结构有(1),(2),(3),(4)四种。

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

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

5.抽象数据类型的定义仅取决于它的一组(1),而与(2)无关,即不论其内部结构如何变化,只要它的(3)不变,都不影响其外部使用。

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

7.数据结构是研讨数据的(1)和(2),以及它们之间的相互关系,并对与这种结构定义相应的(3),设计出相应的(4)。

8.一个算法具有5个特性: (1)、(2)、(3),有零个或多个输入、有一个或多个输出。

数据结构考试试题库含答案解析

数据结构考试试题库含答案解析

数据结构考试试题库含答案解析数据结构习题集含答案⽬录⽬录 (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.在数据结构中,从逻辑上可以把数据结构分成()。

A. 动态结构和静态结构B. 紧凑结构和非紧凑结构C. 线性结构和非线性结构D. 内部结构和外部结构2.数据结构在计算机内存中的表示是指()。

A. 数据的存储结构B. 数据结构C. 数据的逻辑结构D. 数据元素之间的关系3.在数据结构中,与所使用的计算机无关的是数据的()结构。

A. 逻辑B. 存储C. 逻辑和存储D. 物理4.计算机算法指的是(①),它必须具备输入、输出和(②)等5个特性。

①A. 计算方法 B. 排序方法C. 解决问题的有限运算序列D. 调度方法②A. 可行性、可移植性和可扩充性 B. 可行性、确定性和有穷性C. 确定性、有穷性和稳定性D. 易读性、稳定性和安全性5.在一个长度为n的顺序表中向第i个元素(1≤i≤n+1)位置插入一个新元素时,需要从后向前依次后移()个元素。

A. n-iB. n-i+1C. n-i-1D. i6.在一个长度为n的顺序表中删除第i个元素(1≤i≤n)时,需要从前向后依次前移()个元素。

A. n-iB. n-i+1C. n-i-1D. i7.在一个长度为n的顺序表的表尾插入一个新元素的渐进时间复杂度为()。

A. O(n)B. O(1)C. O(n2)D. O(log2n)8.在一个长度为n的顺序表的任一位置插入一个新元素的渐进时间复杂度为()。

A. O(n)B. O(n/2)C. O(1)D. O(n2)9.不带头结点的单链表first为空的判定条件是:()A. first == NULL;B. first->next == NULL;C. first->next == first;D. first != NULL;10.带头结点的单链表first为空的判定条件是:()A. first == NULL;B. first->next == NULL;C. first->next == first;D. first != NULL;11.设单链表中结点的结构为(data, next)。

数据结构练习题(含答案)(DOC)

数据结构练习题(含答案)(DOC)
tmp=a[i]; a[i]=a[j]; a[j]=tmp; } }
3. 已知线性表中的元素以值递增有序排列,并以单链表作存储结构。试写一算法,删除表中所有大于 x 且小于 y 的元 素(若表中存在这样的元素)同时释放被删除结点空间。
void del(LinkList L,elemtype a,elemtype b) { p= L;q=p->next;
习题答案
2.1 1. B 2. A, C 3. B 4. D 5. C 6. A 7. A 8. B
9. C 10. D 11.B 12.B 13.A 14.D 15.B 16.C
2.2 1. 线性结表
2. 前驱结点、后继结点
3. s, p 5. p->next, s
4. q->next, q 6. O (1) , O (n)
A. s->next=p->next; p->next=s; B. p->next=s->next; s->next=p;
B. q->next=s; s->next=p;
C. p->next=s; s->next=q;
12. 在一个单链表中,若 p 所指结点不是最后结点,在 p 之后插入 s 所指结点,则执行____。
6. 对于一个具有 n 个结点的单链表,在已知 p 所指结点后插入一个新结点的时间复杂度是__ __;在给定值为 x 的
结点后插入一个新结点的时间复杂度是__ __。
2.3 算法设计题:
1.设顺序表 va 中的数据元数递增有序。试写一算法,将 x 插入到顺序表的适当位置上,以保持该表的有序性。
Status Insert_SqList(SqList &va,int x) { if(va.length+1>maxsize) return ERROR; va.length++; for(i=va.length-1;va.elem[i]>x&&i>=0;i--) va.elem[i+1]=va.elem[i]; va.elem[i+1]=x; return OK;

(完整word版)数据结构考试题4

(完整word版)数据结构考试题4

要求:所有的题目的解答均写在答题纸上,需写清楚题目的序号。

每张答题纸都要写上姓名和学号。

一、单项选择题(每小题2分,共15小题,共计30分)1. 以下不属于存储结构是 。

A.栈 B.线索树 C.哈希表 D.双链表2. 以下算法的时间复杂度为 。

void fun(int n) { int i=1; while (i<=n) i=i*3; }A. O(n )B. O(n 2)C. O(log 2n )D. O(log 3n )3. 在含有n 个节点的单链表中查找第i 个节点的平均时间复杂度是 。

A.O(log 2n ) B.O(1) C.O(n 2) D.O(n )4. 设栈S 和队列Q 的初始状态均为空,元素a ,b ,c ,d ,e ,f ,g 依次进入栈S 。

若每个元素出栈后立即进入队列Q ,且7个元素出列的顺序是b ,d ,c ,f ,e ,a ,g ,则栈S 的容量至少是 。

A. 1B. 2C. 3D. 45. 已知循环队列存储在一维数组A [0..n -1]中,且队列非空时front 和rear 分别指向队头元素和队尾元素。

若初始时队列空,且要求第一个进入队列的元素存储在A [0]处,则初始时front 和rear 的值分别是 。

A. 0,0B. 0,n -1C. n -1,0D. n -1,n -1 6. 一个n ×n 的对称矩阵A ,如果采用以列优先(即以列序为主序)的压缩方式存放到一个一维数组B 中,则B 的容量为 。

A. n 2B.22n C.2)1(+n n D.2)1(2+n 7. 若一棵3次树中有a 个度为1的节点,b 个度为2的节点,c 个度为3的节点,则该树中有 个叶子节点。

A.1+2b +3cB.a +2b +3cC.2b +3cD.1+b +2c8. 一个无向连通图中有16条边,所有顶点的度均小于5,度为4的顶点有3个,度为3的顶点有4个,度为2的顶点有2个,则该图有 个顶点。

(完整word版)数据结构(C语言)

(完整word版)数据结构(C语言)

《数据结构与算法》复习题应用简答题.1.有下列几种用二元组表示的数据结构,画出它们分别对应的逻辑图形表示,并指出它们分别属于何种结构。

(1)A ={D,R},其中:D={a,b,c,d,e,f,g,h},R ={r},r ={<a,b>,<b,c>,〈c,d〉,〈d,e>,〈e,f〉,<f,g>,<g,h〉}(2)B ={D,R},其中:D={a,b,c,d,e,f,g,h},R ={r},r ={<d,b>,〈d,g〉,<d,a〉,<b,c>,<g,e>,<g,h〉,〈e,f〉}(3)C ={D,R},其中:D={1,2,3,4,5,6},R ={r},r ={(1,2),(2,3),(2,4),(3,4),(3,5),(3,6),(4,5),(4,6)}2.简述顺序表和链表存储方式的特点。

答:顺序表的优点是可以随机访问数据元素,缺点是大小固定,不利于增减结点(增减结点操作需要移动元素)。

链表的优点是采用指针方式增减结点,非常方便(只需改变指针指向,不移动结点)。

其缺点是不能进行随机访问,只能顺序访问。

另外,每个结点上增加指针域,造出额外存储空间增大.3.对链表设置头结点的作用是什么?(至少说出两条好处)答:其好处有:(1)对带头结点的链表,在表的任何结点之前插入结点或删除表中任何结点,所要做的都是修改前一个结点的指针域,因为任何元素结点都有前驱结点(若链表没有头结点,则首元素结点没有前驱结点,在其前插入结点和删除该结点时操作复杂些)。

(2)对带头结点的链表,表头指针是指向头结点的非空指针,因此空表与非空表的处理是一样的。

4.对于一个栈,给出输入项A ,B,C 。

如果输入项序列由A ,B,C 组成,试给出全部可能的输出序列。

5.设有4个元素1、2、3、4依次进栈,而栈的操作可随时进行(进出栈可任意交错进行,但要保证进栈次序不破坏1、2、3、4的相对次序),请写出所有不可能的出栈次序和所有可能的出栈次序.6.现有稀疏矩阵A 如图所示,要求画出三元组表示法和十字链表表示法:⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡--000280000000910000000060000003130150220157.设4维数组的4个下标的范围分别为[-1,0],[1,2],[1,3],[-2,-1],请分别按行序和列序列出各元素。

数据结构考试题库及答案

数据结构考试题库及答案

数据结构考试题库及答案一、选择题1. 下列哪个不是线性结构?A. 栈B. 队列C. 双向链表D. 树答案:D2. 在顺序存储结构中,数据元素的物理位置与逻辑位置相同的是哪种结构?A. 栈B. 队列C. 线性表D. 树答案:C3. 下列哪种排序算法的时间复杂度是O(nlogn)?A. 冒泡排序B. 选择排序C. 快速排序D. 插入排序答案:C4. 在二叉树中,度为0的节点称为()。

A. 根节点B. 内节点C. 叶子节点D. 父节点答案:C5. 下列哪种图的邻接矩阵是对称的?A. 有向图B. 无向图C. 有向连通图D. 无向连通图答案:B二、填空题6. 在链表中的每个节点至少包含两个部分:一个是存储数据元素的数据域,另一个是存储下一个节点地址的指针域。

7. 在顺序表中,元素之间的逻辑关系是由它们的相对位置来体现的。

8. 快速排序的基本思想是:在待排序序列中选取一个基准元素,将序列中所有小于基准元素的元素放在基准元素前面,所有大于基准元素的元素放在基准元素后面。

9. 图中的每个节点称为顶点,顶点之间的连线称为边。

10. 在哈希表中,哈希函数的目的是将关键字映射到散列地址。

三、判断题11. 在顺序表中插入一个元素的时间复杂度为O(1)。

()答案:错误。

插入一个元素的时间复杂度为O(n),因为可能需要移动其他元素。

12. 在链表中删除一个元素的时间复杂度为O(n)。

()答案:错误。

删除一个元素的时间复杂度为O(1),只要找到该元素的前一个节点即可。

13. 二分查找只适用于有序的顺序表。

()答案:正确。

14. 在二叉树中,任意节点的度数不会超过2。

()答案:正确。

15. 图的邻接表表示法比邻接矩阵表示法更加节省空间。

()答案:正确。

四、应用题16. 请用C语言实现一个顺序栈的数据结构,并给出入栈、出栈和判断栈空的操作。

答案:```c#define MAXSIZE 100typedef struct {int data[MAXSIZE];int top;} SeqStack;// 初始化栈void InitStack(SeqStack s) {s->top = -1;}// 判断栈是否为空int StackEmpty(SeqStack s) {return s->top == -1;}// 入栈int Push(SeqStack s, int x) {if (s->top == MAXSIZE - 1) {return 0; // 栈满}s->data[++s->top] = x;return 1;}// 出栈int Pop(SeqStack s, int x) {if (s->top == -1) {return 0; // 栈空}x = s->data[s->top--];return 1;}```17. 请简述二分查找的基本思想。

数据结构习题库汇总

数据结构习题库汇总

知识点:01.绪论02.顺序表03.链表04.栈05.链队列06.循环队列07.串08.数组的顺序表示09.稀疏矩阵10.广义表11.二叉树的根本概念12.二叉树遍历、二叉树性质13.树、树与二叉树的转换14.赫夫曼树15.图的定义、图的存储16.图的遍历17.图的生成树18.静态查找〔顺序表的查找、有序表的查找〕19.动态查找〔二叉排序树、平衡树、B树〕20.哈希查找21.插入排序〔直接插入、折半插入、2路插入、希尔排序〕22.选择排序〔简单项选择择、树形选择、堆排序〕23.快速排序、归并排序101A1〔1〕.数据的逻辑构造是〔A〕。

A.数据的组织形式B.数据的存储形式C.数据的表示形式D.数据的实现形式101A1〔2〕.组成数据的根本单位是〔C〕。

A.数据项B.数据类型C.数据元素D.数据变量101B1〔3〕.与顺序存储构造相比,链式存储构造的存储密度〔B〕。

A.大B.小C.一样D.以上都不对101B2〔4〕.对于存储同样一组数据元素而言,〔D〕。

A.顺序存储构造比链接构造多占空间B.在顺序构造中查找元素的速度比在链接构造中查找要快C.与链接构造相比,顺序构造便于安排数据元素D.顺序构造占用整块空间而链接构造不要求整块空间101B2〔5〕.下面程序的时间复杂度为〔B〕。

x=0;for〔i=1;i<n;i++〕for〔j=i+1;j<=n;j++〕x++;A.O〔n〕B.O〔n2〕C.O〔1〕D.O〔n〕101B2〔6〕.下面程序的时间复杂度为〔C〕。

for〔i=0;i<m;i++〕for〔j=0;j<n;j++〕A[i][j]=i*j;A.O〔m2〕B.O〔n2〕C.O〔m×n〕D.O〔m+n〕101C2〔7〕.下面程序段的执行次数为〔B〕。

for〔i=0;i<n-1;i++〕for〔j=0;j>i;j++〕state;A.n〔n+1〕/2 B.〔n-1〕〔n+2〕/2C.n〔n+1〕/2 D.〔n-1〕〔n+2 101D3〔8〕.下面程序的时间复杂度为〔A〕。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

知识点:01.绪论02.顺序表03.链表04.栈05.链队列06.循环队列07.串08.数组的顺序表示09.稀疏矩阵10.广义表11.二叉树的基本概念12.二叉树遍历、二叉树性质13.树、树与二叉树的转换14.赫夫曼树15.图的定义、图的存储16.图的遍历17.图的生成树18.静态查找(顺序表的查找、有序表的查找)19.动态查找(二叉排序树、平衡树、 B 树)20.哈希查找21.插入排序(直接插入、折半插入、 2 路插入、希尔排序)22.选择排序(简单选择、树形选择、堆排序)23.快速排序、归并排序101A1( 1).数据的逻辑结构是( A )。

A .数据的组织形式B.数据的存储形式C.数据的表示形式D .数据的实现形式101A1( 2).组成数据的基本单位是(C)。

A .数据项B.数据类型C.数据元素D.数据变量101B1( 3).与顺序存储结构相比,链式存储结构的存储密度( B )。

A .大B .小C.相同 D .以上都不对101B2( 4).对于存储同样一组数据元素而言,(D )。

A .顺序存储结构比链接结构多占空间B.在顺序结构中查找元素的速度比在链接结构中查找要快C.与链接结构相比,顺序结构便于安排数据元素D.顺序结构占用整块空间而链接结构不要求整块空间101B2( 5).下面程序的时间复杂度为( B )。

x=0 ;for (i=1 ;i<n ; i++ )for( j=i+1 ; j<=n ; j++ )x++ ;A . O(n)B. O(n2)C. O( 1) D . O( n)101B2( 6).下面程序的时间复杂度为(C)。

for (i=0 ;i<m ;i++ )for( j=0 ; j<n ; j++ )A[i][j]=i*j;A . O( m2)B .O(n2)C. O(m× n)D. O( m+n)101C2( 7).下面程序段的执行次数为( B )。

for (i=0 ;i<n-1 ; i++ )for( j=0 ; j>i ; j++ )state;A . n( n+1) /2B.( n-1)( n+2) /2C. n( n+1 )/2 D .( n-1)( n+2)101D3 ( 8).下面程序的时间复杂度为( A )。

for( i=0 ; i<m ; i++ )for ( j=0 ; j<t ; j++ )c[i][j]=0 ;for( i=0 ; i<m ; i++ )for ( j=0 ; j<t ; j++ )for( k=0; k<n; k++)c[i][j]=c[i][j]+a[i][k]*b[k][j];A . O( m× n× t)B . O( m+n+t )C. O( m+n× t) D . O( m× t+n )102A1 ( 9).顺序表的特点是(B )。

A .表中元素的个数为表长B .按顺序方式存储数据元素C.逻辑结构中相邻的结点在存储结构中仍相邻D.按表中元素的次序存储102C2( 10).设顺序表共有n 个元素,用数组elem 存储,实现在第i 个元素之前插入一个元素 e 的操作,其主要语句为(D)。

A . FOR j=n DOWNTO i DO elem[j]=elem[j+1];elem[i]=e ;B. FOR j=i TO n DO elem[j]=elem[j+1];elem[i]=e ;C. FOR j=i TO n DO elem[j+1]=elem[j] ;elem[i]=e ;D. FOR j=n DOWNTO i DO elem[j+1]=elem[j];elem[i]=e ;102D2 ( 11).顺序表有5 个元素,设在任何位置上插入元素是等概率的,则在该表中插入一个元素时所需移动元素的平均次数为( C)。

A . 3B .2C. 2. 5D. 5102D2 ( 12).设顺序表有 9 个元素,则在第 3 个元素前插入一个元素所需移动元素的个数为(A . 9B .4. 5C. 7 D .6102D3 ( 13).设顺序表有 19 个元素,第一个元素的地址为200,且每个元素占 3 个字节,则第元素的存储地址为( B )。

C)。

14 个A . 236B .239C. 242D. 245102D2 (14).设顺序表的第 5 个元素的存储地址为200,且每个元素占一个存储单元,则第的存储地址为(B)。

A . 208B .209C. 210 D .214103D3 (15).设 p 为指向双向循环链表中某个结点的指针,p 所指向的结点的两个链域分别用和 p->rlink 表示,则下列等式中(D)成立。

14 个元素p->llinkA . p=p->llinkB .p=p->rlink C. p=p->llink->llink D. p=p->llink->rlink103A1 ( 16).线性表采用链式存储时,其地址(D)。

A .必须是连续的B.一定是不连续的C.部分地址必须是连续的D.连续与否均可以103B1 ( 17).线性表是( A )。

A .一个有限序列,可以为空B.一个有限序列,不可以为空C.一个无限序列,可以为空D.一个无限序列,不可以为空103B1 ( 18).链式存储的线性表中的指针指向其(B)。

A .前趋结点B .后继结点C.物理前趋D.物理后继103C2( 19).设在链式存储的线性表中,设结点结构为data link ,欲在 p 结点后插入一个结点q 的关键步骤为( A )。

A . q->link=p->link C. q->link=p->link ;;p->link=qq->link=p;;B.p->link=q->linkD . p->link=q->link;;p->link=qq->link=p;;103C3( 20).设有指针 head 指向的带表头结点的单链表,现将指针p 指向的结点插入表中,使之成为第一个结点,其操作是( A )(其中, p->next 、 head->next 分别表示p、 head 所指结点的链域)。

A . p->next=head->next ; head->next=p;B . p->next=head->next ;C. p->next=head; head=p; D. p->next=head; p= head; 104A1 ( 21).在栈中,下列说法正确的是( A )。

head=p;A .每次插入总是在栈顶,每次删除也总是在栈顶。

B.每次插入总是在栈顶,每次删除总是在栈底。

C.每次插入总是在栈底,每次删除总是在栈顶。

D.每次插入总是在栈底,每次删除也总是在栈底。

104B2 ( 22).设有一个栈,按A 、 B、 C 的顺序进栈,则下列(C)为不可能的出栈序列。

A . ABC B. CBA C.CAB D .ACB104B2 ( 23).设有一个栈,按A 、 B、 C、 D 的顺序进栈,则下列(D)为可能的出栈序列。

A . DCAB B . CDAB C. DBACD .ACDB104A2 ( 24).顺序栈的上溢是指(B)。

A .栈满时作退栈运算B.栈满时作进栈运算C.栈空时作退栈运算 D .栈空时作进栈运算104D3 ( 25).顺序栈S中 top 为栈顶指针,指向栈顶元素所在的位置,elem 为存放栈的数组,则元素e 进栈操作的主要语句为(D)。

A . s. elem[top]=e ;s. top=s. top+1 ;B.s. elem[top+1]=e ;s. top=s. top+1 ;C. s. top=s. top+1 ;s. elem[top+1]=e ;D. s. top=s. top+1 ;s. elem[top]=e ;104C2( 26).设有 5 个元素 A , B, C,D ,E 顺序进栈(进栈过程中可以出栈),出栈后依出栈次序进入队列,已知其出队次序为 D ,C,E, B, A,则该栈容量必定不小于(C)。

A . 2B . 3C. 4 D .5104B2 ( 27).设栈 S 的初始状态为空,现有五个元素组成的序列1, 2, 3, 4, 5,对该序列在栈S 上依次进行PUSH, PUSH, POP, PUSH, POP, PUSH ,PUSH 操作,出栈的元素序列是(C)。

A . 5, 4, 3, 2, 1B .2, 1C. 2, 3 D . 3,4104B2 ( 28).在一个具有 n 个单元的顺序栈中,假定以地址低端(即顶指针,则当做出栈处理时,top 变化为( C)。

0 单元)作为栈底,以top为栈A . top 不变B. top=0C. top- - D . top++104D3 ( 29).向一个栈顶指针为hs 的链栈中插入一个*s 结点时,应执行( B )。

A . hs->next=s;B . s->next=hs; hs=s;C. s->next=hs->next ; hs->next=s;D. s->next=hs; hs=hs->next;105A1 ( 30).在队列中,下列说法正确的是( A )。

A .每次插入总是在队尾,每次删除总是在队头。

B .每次插入总是在队尾,每次删除也总是在队尾。

C.每次插入总是在队头,每次删除也总是在队头。

D.每次插入总是在队头,每次删除总是在队尾。

105D3 (31).在带头结点的链队列q 中,用 q.front 表示队头指针,q.rear 表示队尾指针,结点结构为 data next ,删除链队列的队头结点的主要语句为(B)。

A . s=q. front ; q.front->next= s . next;B. s=q. front->next ;q. front->next= s . next;C. s=q. front->next ; q. front= s . next;D. s=q; q. front->next= s . next;106C3( 32).循环队列sq 中,用数组 elem 存放数据元素, sq.front 指示队头元素的前一个位置,sq.rear 指示队尾元素的当前位置,队列的最大容量为MAXSIZE ,则队列满的条件为(D)。

A . sq. front= sq . rearB .sq. front= sq .rear+1C.( sq. front +1 )mod MAXSIZE= sq . rearD.( sq. rear+1) mod MAXSIZE= sq . front106C2( 33).循环队列sq 中,用数组 elem 存放数据元素, sq.front 指示队头元素的前一个位置,sq.rear 指示队尾元素的当前位置,队列的最大容量为MAXSIZE ,则在队列未满时元素x 入队列的主要操作为( A )。

相关文档
最新文档