《数据结构》复习题
《数据结构》复习题题库
一、单项选择题(本大题共71小题,每小题2分,共142分)1、一个对象序列的排序码为{46,79,56,38,40,84},采用快速排序以位于最左位置的对象为基准而得到的第一次划分结果为()。
()A.{38,46,79,56,40,84}B.{38,79,56,46,40,84}C.{40,38,46,56,79,84}D.{38,46,56,79,40,84}标准答案:C2、广义表((a),a)的表头是()。
()A.aB.bC.(a)D.((a))标准答案:C3、数组A中,每个元素A的长度为3个字节,行下标i从1到8,列下标j从1到10,从首地址SA开始连续存放在存储器内,存放该数组至少需要的单元数是()。
()A.80B.100C.240D.270标准答案:C4、在一个单链表HL中,若要向表头插入一个由指针p指向的结点,则执行()。
()A.HL=p;p->next=HL;B.p->next=HL;HL=p;C.p->next=HL;p=HL;D.p->next=HL->next;HL->next=p;标准答案:B5、一个具有n个顶点的无向完全图的边数为()。
()A.(n+1)/2B.n(n-1)/2C.n(n-1)D.n(n+1)标准答案:B6、如果待排序序列中两个数据元素具有相同的值,在排序后它们的位置发生颠倒,则称该排序是不稳定的。
下列选项中,()就是不稳定的排序方法。
()A.起泡排序B.归并排序C.直接插入法排序D.简单选择排序标准答案:D7、按照二叉树的定义,具有3个结点的二叉树有()种。
()A.3B.4C.5D.6标准答案:C8、设有1000个元素,用二分法查找时,最大比较次数是()。
()A.1B.7C.10D.25标准答案:C9、树适合用来表示()。
()A.有序数据元素B.无序数据元素C.元素之间具有分支层次关系的数据D.元素之间无联系的数据标准答案:C10、设有两个串p和q,求p在q中首次出现的位置的运算称作()。
数据结构复习习题和答案(DOC)
第一章绪论一、单项选择题1.数据结构是一门研究非数值计算的程序设计问题中计算机的①以及它们之间的②和操作等的学科。
① A.操作对象 B.计算方法 C·逻辑存储 D.数据映象② A.结构 B.关系 C.运算. D.算法2.数据结构被形式地定义为(D,R),其中D是①的有限集合,R是D上的②有限集合。
① A.算法 B.数据元素 C.数据操作 D.逻辑结构② A.操作 B.映象 C、存储 D.关系3.在数据结构中,从逻辑上可以把数据结构分成()。
A.动态结构和静态结构 B.紧凑结构和非紧凑结构C.线性结构和非线性结构 D.内部结构和外部结构4·算法分析的目的是①,算法分析的两个主要方面是②。
① A. 找出数据结构的合理性 B.研究算法中的输入和输出的关系C. 分析算法的效率以求改进D. 分析算法的易懂性和文档性② A. 空间复杂性和时间复杂性 B.正确性和简明性C.可读性和文档性 D.数据复杂性和程序复杂性5.计算机算法指的是①,它必具备输入、输出和②等五个特性。
① A. 计算方法 B.排序方法 C. 解决问题的有限运算序列 D.调度方法② A. 可行性、可移植性和可扩充性 B. 可行性、确定性和有穷性C. 确定性、有穷性和稳定性 D.易读性、稳定性和安全性6. 线性表的逻辑顺序与存储顺序总是一致的,这种说法()。
A. 正确 B.不正确7. 线性表若采用链式存储结构时,要求内存中可用存储单元的地址()。
A. 必须是连续的 B.部分地址必须是连续的C. 一定是不连续的D. 连续或不连续都可以8.数据结构通常是研究数据的()及它们之间的相互联系。
A.存储和逻辑结构 B.存储和抽象C.理想与抽象 D.理想与逻辑9.数据在计算机存储器内表示时,物理地址与逻辑地址相同并且是连续的,称之为()。
A.存储结构 B.逻辑结构 C.顺序存储结构 D.链式存储结构11.非线性结构是数据元素之间存在一种()。
数据结构复习题及答案5篇
数据结构复习题及答案5篇第一篇:数据结构复习题及答案、数据结构复习题及答案中南大学现代远程教育课程考试(专科)复习题及参考答案数据结构一、判断题:1.数组是一种复杂的数据结构,数组元素之间的关系既不是线性的也不是树形的。
()2.链式存储在插人和删除时需要保持物理存储空间的顺序分配,不需要保持数据元素之间的逻辑顺序。
()3.在只有度为0和度为k的结点的k叉树中,设度为0的结点有n0个,度为k的结点有nk个,则有n0=nk+1。
()4.折半搜索只适用于有序表,包括有序的顺序表和有序的链表。
()5.如果两个串含有相同的字符,则这两个串相等。
()6.数组可以看成线性结构的一种推广,因此可以对它进行插入、删除等运算。
()7.在用循环单链表表示的链式队列中,可以不设队头指针,仅在链尾设置队尾指针。
()8.通常递归的算法简单、易懂、容易编写,而且执行的效率也高。
()9.一个广义表的表尾总是一个广义表。
()10.当从一个小根堆(最小堆)中删除一个元素时,需要把堆尾元素填补到堆顶位置,然后再按条件把它逐层向下调整,直到调整到合适位置为止。
()11.对于一棵具有n个结点,其高度为h的二叉树,进行任一种次序遍历的时间复杂度为O(h)。
()12.存储图的邻接矩阵中,邻接矩阵的大小不但与图的顶点个数有关,而且与图的边数也有关。
()13.直接选择排序是一种稳定的排序方法。
()14.闭散列法通常比开散列法时间效率更高。
()15.有n个结点的不同的二叉树有n!棵。
()16.直接选择排序是一种不稳定的排序方法。
()17.在2048个互不相同的关键码中选择最小的5个关键码,用堆排序比用锦标赛排序更快。
()18.当3阶B_树中有255个关键码时,其最大高度(包括失败结点层)不超过8。
()19.一棵3阶B_树是平衡的3路搜索树,反之,一棵平衡的3路搜索树是3阶非B_树。
()20.在用散列表存储关键码集合时,可以用双散列法寻找下一个空桶。
《数据结构》复习题
《数据结构》复习题一.选择题:1.数据结构是研究数据的( ) 以及它们之间的相互关系A.理想结构,物理结构B.理想结构,抽象结构C.物理结构,逻辑结构D.抽象结构,逻辑结构2. 组成数据的基本单位是()A.数据项B.数据类型C. 数据元素D. 数据变量3. 如果某数据结构的数据元素的集合为S={A,B,C,D,E,F,G},元素之间的关系为R={<A,D>,<A,G>,<D,B>,<D,C>,<G,E>,<G,F>},则该数据结构是一种()A.线性结构B. 树结构C. 图结构D. 链表结构4. 线性表的链接实现有利于( ) 运算A.插入B.读表元C.查找D.定位5. 设一数列的输入顺序为1,2,3,4,5,6通过栈操作不可能排成的输出序列为()A. 3,2,5,6,4,1B. 1,5,4,6,2,3C. 2,4,3,5,1,6D. 4,5,3,6,2,16. 设字符串S1=‘ABCDEFG’,S2=‘PQRST’则运算S=Concat(Sub(S1,2,Length(S2)),Sub(S1,Length(S2),2))后结果为()A.‘BCQR’B.‘BCDEF’C.‘BCDEFG’D.‘BCDEFEF’7. 设单链表中指针P指向结点A,若要删除A之后的结点(若存在),则修改指针的操作为()A. p→next= p→next→nextB. p= p→nextC. p= p→next→nextD. p→next = p8. 线性表采用链式存储时,其地址()A. 必须是连续的B.部分地址必须是连续的C. 一定是不连续的D.连续与否均可以9. 在内部排序时,排序不稳定的有()A.插入排序B. 冒泡排序C. 快速排序D.归并排序10. 设有1000个元素,用折半法查找时,最小比较次数为()A.0B. 1C.10D. 50011. 将一个元素进入队列的时间复杂度是()n)A. O (1)B. O (n)C. O (n2)D. O (log212. 在一个具有n个结点的单链表中查找其值等x的结点,在查找成功的情况下,需要比较()个元素结点A. n/2B. nC. (n+1)/2D. (n-1)/213. 从一个长度为n的顺序表中删除第i个元素(1≤i≤n),需向前移动()个元素A. n-iB. n-i+1C. n-i-1D. i14. 总共3层的完全二叉树,其结点数至少有()A.3B. 4C.7D.815. 队列操作的原则是()A. 先进先出B.后进先出C. 只能进行插入D. 只能进行删除16. 若线性表最常用的操作是存取第i个元素及其前驱元素的值,则采用()存储方式最节省时间A.单链表B. 双向链表C. 音循环链表D. 顺序表17. 栈和队列都是()A. 顺序存储的线性结构B. 限制存取点的线性结构C. 链接存储的线性结构D. 限制存取点的非线性结构18. 与线性表的链接存储相符的特性是()A.插入和删除操作灵活B. 需要连续存储空间C. 便于随机访问D. 存储密度大19.若进队序列为1,2,3,则出队序列是()A.3,2,1B. 1,3,2C. 1,2,3D. 3,2,120. 在单向循环链表中,若头指针为h,那么p所指结点为尾结点的条件是()A. p= NULLB. p→next= NULLC. p=hD. p→next= h3. 在双向循环链表中,在指针P所指的结点之后插入指针f所指的结点,其操作为。
数据结构复习题(附答案)
数据结构复习题(附答案)1. 快速排序在最坏情况下的时间复杂度为( D )。
A.O(log2n) B.O(nlog2n) C.O (n) D. O (n2)2.设⼀棵⼆叉树的深度为k,则该⼆叉树中最多有( D )个结点。
A. 2k-1B. 2kC.2k-1D. 2k-13.⼆叉树中第i(i≥1)层上的结点数最多有( C )个。
A. 2iB. 2iC. 2i-1D. 2i-1 4.设指针变量p指向单链表结点A,则删除结点A的后继结点B需要的操作为( A )。
A. p->next=p->next->nextB. p=p->nextC. p=p->next->nextD. p->next=p5.设栈S和队列Q的初始状态为空,元素E1、E2、E3、E4、E5和E6依次通过栈S,⼀个元素出栈后即进⼊队列Q,若6个元素出列的顺序为E2、E4、E3、E6、E5和E1,则栈S的容量⾄少应该是( C )。
A. 6B. 4C. 3D. 26.设有以下四种排序⽅法,则( B )的空间复杂度最⼤。
A. 冒泡排序B. 快速排C. 堆排序D. 希尔排序7.设结点A有3个兄弟结点且结点B为结点A的双亲结点,则结点B的度数数为( B )。
A. 3B. 4C. 5D. 18.根据⼆叉树的定义可知⼆叉树共有( B )种不同的形态。
A. 4B. 5C. 6D. 79.对⼀个算法的评价,不包括如下( A )⽅⾯的内容。
A.并⾏性 B.健壮性和可读性 C.正确性 D.时空复杂度10.在⼆叉排序树中插⼊⼀个结点的时间复杂度为( C )。
A.O(1) B.O(n) C.O(log2n) D.O(n2)11. 队列是⼀种( B )的线性表。
A.先进后出B.先进先出 C.只能插⼊D.只能删除12.采⽤开放定址法处理散列表的冲突时,其平均查找长度( C )。
A.低于链接法处理冲突 B. 与链接法处理冲突相同C.⾼于链接法处理冲突 D.⾼于⼆分查找13.设有序顺序表中有n个数据元素,则利⽤⼆分查找法查找数据元素X的最多⽐较次数不超过( A )。
(完整版)数据结构复习题(附答案)
一、算法设计题(每题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。
数据结构复习题及参考答案
《数据结构》课程复习资料一、填空题:1.设需要对5个不同的记录关键字进行排序,则至少需要比较________次,至多需要比较__________次。
2.设二叉排序树的高度为h,则在该树中查找关键字key最多需要比较_________次。
3.设在长度为20的有序表中进行二分查找,则比较一次查找成功的结点数有_________个,比较两次查找成功有结点数有_________个。
4.数据结构从逻辑上划分为三种基本类型:___________、__________和___________。
5.在一个具有n个顶点的无向完全图中,包含有________条边,在一个具有n个顶点的有向完全图中,包含有________条边。
6.向一棵B_树插入元素的过程中,若最终引起树根结点的分裂,则新树比原树的高度___________。
7.在堆排序的过程中,对任一分支结点进行筛运算的时间复杂度为________,整个堆排序过程的时间复杂度为________。
8.在快速排序、堆排序、归并排序中,_________排序是稳定的。
9.在有n个叶子结点的哈夫曼树中,总结点数是_______。
10.一棵树T采用二叉链表存储,如果树T中某结点为叶子结点,则在二叉链表BT中所对应的结点一定_______。
11.3.已知数组A[10][10]为对称矩阵,其中每个元素占5个单元。
现将其下三角部分按行优先次序存储在起始地址为1000的连续的内存单元中,则元素A[5,6]对应的地址是_______。
12.在有n个结点的无向图中,其边数最多为_______。
13.取出广义表A=(x,(a,b,c,d))中原子x的函数是_______。
14.对矩阵采用压缩存储是为了___ ____。
15.带头结点的双循环链表L为空表的条件是_______。
16.设线性表中元素的类型是实型,其首地址为1024,则线性表中第6个元素的存储位置是。
17.对于顺序存储的栈,因为栈的空间是有限的,在进行运算时,可能发生栈的上溢,在进行运算时,可能发生栈的下溢。
数据结构复习题 有答案的打印版
一、选择题1.下面关于线性表的叙述中,错误的是哪一个?( B )A.线性表采用顺序存储,必须占用一片连续的存储单元。
B.线性表采用顺序存储,便于进行插入和删除操作。
C.线性表采用链接存储,不必占用一片连续的存储单元。
D.线性表采用链接存储,便于插入和删除操作。
3.线性表是具有n个( C )的有限序列(n>0)。
A.表元素B.字符C.数据元素D.数据项E.信息项2.若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用( A )存储方式最节省时间。
A.顺序表B.双链表C.带头结点的双循环链表D.单循环链表3.某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用( D )存储方式最节省运算时间。
A.单链表B.仅有头指针的单循环链表C.双链表D.仅有尾指针的单循环链表4. 静态链表中指针表示的是( C ).A.内存地址B.数组下标C.下一元素地址D.左、右孩子地址5. 链表不具有的特点是( B )A.插入、删除不需要移动元素B.可随机访问任一元素C.不必事先估计存储空间D.所需空间与线性长度成正比1. 对于栈操作数据的原则是(B )。
A. 先进先出B. 后进先出C. 后进后出D. 不分顺序2. 有六个元素6,5,4,3,2,1 的顺序进栈,问下列哪一个不是合法的出栈序列?( A )A. 5 4 3 6 1 2B. 4 5 3 1 2 6C. 3 4 6 5 2 1D. 2 3 41 5 63. 设栈的输入序列是1,2,3,4,则(D )不可能是其出栈序列。
A. 1,2,4,3,B. 2,1,3,4,C. 1,4,3,2,D. 4,3,1,2,E. 3,2,1,4,1. 已知数组A[0..9,0..9]的每个元素占5个存储单元,将其按行优先次序存储在起始地址为1000的连续的内存单元中,求A[6,8]的地址。
13402. 已知二维数组A[1..10,0..9]中每个元素占4个单元,在按行优先方式将其存储到起始地址为1000的连续存储区域时,求A[5,9]的地址。
数据结构复习题及答案
数据结构复习题及答案数据结构习题一、名词解释1.数据、数据元素、数据项、数据结构、数据的逻辑结构、数据物理结构、顺序存储、链式存储、算法、时间复杂度、空间复杂度。
2.线性表、顺序表、单链表、双向链表、循环链表、双向循环链表、三个概念的区别:头指针、头结点、首元结点(第1个元素结点)。
3.栈(顺序栈、链栈)、队列(顺序队、链队)、循环队列、递归、稀疏矩阵、三元组。
4.树、叶子结点、结点的度、树的度、树的高(深)度、二叉树、遍历、满二叉树、完全二叉树、哈夫曼树、WPL、哈夫曼编码。
5.图(有向、无向)、网、边、弧、度、入度、出度、完全图(有向、无向)、(强)连通图(分量)、(最小)生成树、邻接矩阵、邻接表、DFS、BFS。
6.查找表、关键字、静态查找、动态查找、ASL、顺序查找、折半查找、分块查找、二叉排序树。
7、排序、内(外)排序、稳定性、插入(直接、希尔),交换(起泡、快速),选择(直接、堆),2路归并。
一、填空题1.数据结构是研究数据的_逻辑结构__和___物理结构__,并在这种结构上定义相关的运算,设计实现这些运算的算法,分析算法的效率。
算法的效率包括时间和空间两个方面,分别称为___时间复杂度____和__空间复杂度___。
2.数据的基本单元是__数据元素__,数据的最小单元是__数据项_。
3.算法是对特定问题求解___步骤___的一种描述,是指令的有限序列。
4.一个算法的时间复杂度为(3n3+2n—7),其数量级表示为O(n3)_。
5.一个算法具有5个特性:确定性、可行性、有穷性、输入和输出。
6.算法机能的阐发和怀抱,能够从算法的工夫庞大度和空间庞大度来评判算法的好坏。
7.数据的逻辑布局包孕调集布局、线性布局、树形布局和图型布局四品种型。
8.数据布局在计较机中的表示称为数据的物理布局,它能够采用__按次存储___或__链式存储_两种存储方法。
9.线性表有两种存储布局,划分为按次存储和链式存储。
数据结构复习题及标准答案
数据结构复习题及标准答案————————————————————————————————作者:————————————————————————————————日期:一、选择题。
(每小题2分,共40分)(1) 计算机识别.存储和加工处理的对象被统称为____A____。
A.数据B.数据元素C.数据结构D.数据类型(2) 数据结构通常是研究数据的____ A _____及它们之间的联系。
A.存储和逻辑结构B.存储和抽象C.理想和抽象D.理想与逻辑(3) 不是数据的逻辑结构是____ A ______。
A.散列结构B.线性结构C.树结构D.图结构(4) 数据结构被形式地定义为<D,R>,其中D是____ B _____的有限集,R是____ C _____的有限集。
A.算法B.数据元素C.数据操作D.逻辑结构(5) 组成数据的基本单位是____ A ______。
A.数据项B.数据类型C.数据元素D.数据变量(6) 设数据结构A=(D,R),其中D={1,2,3,4},R={r},r={<1,2>,<2,3>,<3,4>,<4,1>},则数据结构A是____ A ______。
A.线性结构B.树型结构C.图型结构D.集合(7) 数据在计算机存储器内表示时,物理地址与逻辑地址相同并且是连续的,称之为___ C ____。
A.存储结构B.逻辑结构C.顺序存储结构D.链式存储结构(8) 在数据结构的讨论中把数据结构从逻辑上分为___ A ____。
A.内部结构与外部结构B.静态结构与动态结构C.线性结构与非线性结构D.紧凑结构与非紧凑结构(9) 对一个算法的评价,不包括如下____ B _____方面的内容。
A.健壮性和可读性B.并行性C.正确性D.时空复杂度(10) 算法分析的两个方面是__ A ____。
A.空间复杂性和时间复杂性B.正确性和简明性C.可读性和文档性D.数据复杂性和程序复杂性(11) 线性表是具有n个___ C _____的有限序列(n≠0)。
《数据结构》复习资料
《数据结构》复习资料《数据结构》复习资料1⼀、选择题1. ⼀棵⼆叉树中第6层上最多有()个结点。
A. 2B. 31C. 32D. 642. 顺序表中数据元素的存取⽅式为()。
A. 随机存取B. 顺序存取C. 索引存取D. 连续存取3. 设有⽆向图G=(V,E),其中顶点集合V={a,b,c,d,e,f},边集合E={(a,b), (a,e), (a,c), (b,e), (c,f), (f,d), (e,d)}。
对G进⾏深度优先遍历,正确的遍历序列是()。
A. a,b,e,c,d,fB. a,c,f,e,b,dC. a,e,b,c,f,dD. a,e,d,f,c,b4. 在待排元素序列基本有序的前提下,效率最⾼的排序⽅法是()。
A. 插⼊B. 选择C. 快速D. 归并5. 设表中含100个数据元素,⽤折半查找法进⾏查找,则所需最⼤⽐较次数为()。
A. 50B. 25C. 10D. 76. 设哈希表地址范围为0~19,哈希函数H(key)=key%17,使⽤⼆次探测再散列法处理冲突。
若表中已存放有关键字值为6、22、38、55的记录,则再放⼊关键字值为72的记录时,其存放地址应为()。
A. 2B. 3C. 4E. 8F. 以上都不对7. 设对下图从顶点a出发进⾏深度优先遍历,则()是可能得到的遍历序列。
A. acfgdebB. abcdefgC. acdgbefD. abefgcd8. 若需在O(nlog2n)的时间内完成对数组的排序,且要求排序是稳定的,则可选择的排序⽅法是()。
A. 快速排序B. 堆排序C. 归并排序D. 直接插⼊排序9. 设有⼀组关键字值(46,79,56,38,40,84),则⽤堆排序的⽅法建⽴的初始堆为()。
A. 79,46,56,38,40,84B. 84,79,56,38,40,46C. 84,79,56,46,40,38D. 84,56,79,40,46,3810. 设⼴义表L=((a,()),b,(c,d,e)),则Head(Tail(Tail(L)))的值为()。
数据结构经典复习题(仅供参考)
一、选择题(20分)1.下面关于线性表的叙述错误的是(D )。
(A) 线性表采用顺序存储必须占用一片连续的存储空间(B) 线性表采用链式存储不必占用一片连续的存储空间(C) 线性表采用链式存储便于插入和删除操作的实现(D) 线性表采用顺序存储便于插入和删除操作的实现2.设某棵二叉树的中序遍历序列为ABCD,前序遍历序列为CABD,则后序遍历该二叉树得到序列为(A )。
(A) BADC (B) BCDA (C) CDAB (D) CBDA3.设某棵二叉树中有2000个结点,则该二叉树的最小高度为( C )。
(A) 9 (B) 10 (C) 11 (D) 124.设二叉排序树中有n个结点,则在二叉排序树的平均平均查找长度为( B )。
(A) O(1) (B) O(log2n) (C) (D) O(n2)5.设有5000个待排序的记录关键字,如果需要用最快的方法选出其中最小的10个记录关键字,则用下列( B )方法可以达到此目的。
(A) 快速排序(B) 堆排序(C) 归并排序(D) 插入排序第9小题分析:9快速排序、归并排序和插入排序必须等到整个排序结束后才能够求出最小的10个数,而堆排序只需要在初始堆的基础上再进行10次筛选即可,每次筛选的时间复杂度为O(log2n)。
6.下列四种排序中( D )的空间复杂度最大。
(A) 插入排序(B) 冒泡排序(C) 堆排序(D) 归并排序7.设一维数组中有n个数组元素,则读取第i个数组元素的平均时间复杂度为(C )。
(A) O(n) (B) O(nlog2n) (C) O(1) (D) O(n2)8.设一棵二叉树的深度为k,则该二叉树中最多有(D )个结点。
(A) 2k-1 (B) 2k(C) 2k-1(D) 2k-19.在二叉排序树中插入一个结点的时间复杂度为(B )。
(A) O(1) (B) O(n) (C) O(log2n) (D) O(n2)10.设用链表作为栈的存储结构则退栈操作( B )。
数据结构试题库复习
】一、单选题:1、下列说法中,不正确的是(D)。
A.数据元素是数据的基本单位B.数据项是数据中不可分割的最小单位C.数据可由若干个数据元素构成D.数据项可由若干个数据元素构成2. 算法的时间复杂度取决于(A)A.问题的规模 B. 待处理数据的初态 C. A和B3.数据的逻辑结构可分为(C )两类。
A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部结构4.线性表是具有n个(C)的有限序列(n>0)A.表元素 B.字符 C.数据元素 D.数据项5.设一个链表最常用的操作是在末尾插入结点和删除尾结点,则选用(D)最节省时间。
A. 单链表B.单循环链表C. 带尾指针的单循环链表D.带头结点的双循环链表6.若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用(A )存储方式最节省时间。
A.顺序表 B.双链表 C.带头结点的双循环链表 D.单循环链表5.下述哪一条是顺序存储结构的优点( D)A.存储密度大 B.插入运算方便C.删除运算方便 D.可方便地用于各种逻辑结构的存储表示2、非空的循环单链表L的尾结点(由p所指向)满足(C )。
A.p->next= =NULLB.p= =NULLC.p->next= =LD.p= =L2. 对于一个头指针为head的带头结点的单链表,判定该表为空表的条件是( B )。
A.head==NULLB.head->next==NULLC.head->next==headD.head!=NULL3、已知一个栈的进栈序列是1,2,3…,n,其输出序列的第一个元素是i,则第j个出栈元素是(D )。
A.iB.n-iC.j-i+1D.不确定3、一个栈的进栈序列是a,b,c,d,e,则栈的不可能的输出序列是(C )。
A.edcbaB.decbaC.dceabD.abcde4、若串s='software',其子串的个数是( D )。
《数据结构》复习题
数据结构复习题一、单项选择题1.数据结构在计算机中的表示称为数据的()。
A)存储结构B)抽象结构C)顺序结构D)逻辑结构2.对于下面程序段的时间复杂度为()。
for(i=1;i<=n;i++)for(j=1;j<=i;j++)x=x+1;A)O(n) B)O(n2) C)O(n*i) D)O(n+i)9.数据类型为()。
A)数据项的集合B)值的集合及定义在其上的一组操作的总称C)数据元素的集合D)关键字的集合10.网状结构的特征是()。
A)结D)正确性、可读性、健壮性及确定性12.在下列序列中,不是线性表的是()。
A)('a','b','c') B)('AB','CD') C)('a',true,'c') D)(a,b,c,d)13.线性链表中各链结点之间的地址()。
A)必须连续B)部分地址必须连续C)不一定连续D)连续与否无所谓14.如某链表中最常用的操作是在最后一个结点后插入一个结点和删除最后一个结点,则()存储方式最节省运行时间。
A)单链表B)带头结点的单链表C)单循环链表D)带头结点的双循环链表15.在非空线性链表中由p所指的链结点后面插入一个由q所指的链结点的过程是依次执行动作()。
A)q->next=p;p->next=q; B)q->next=p->next;p->next=qC)q->next=p->next;p=q; D)p->next=q;q->next=p;16.线性表的顺序存储结构具有的特点是()。
A)可直接随机访问任一元素B)插入删除不需要移动元素C)不必26.从一个具有头结点的单链表中查找数据元素值为x的结点时,在查找成功的情况下,平均比较次数是()。
A)n B)n/2 C)(n-1)/2 D)(n+1)/227.对于长度为n的顺序线性表进行删除元素操作,如删除每个元素的概率相同,则删除一个元素移动元素的平均次数是()。
数据结构复习题
数据结构复习题《数据结构》复习资料⼀、单项选择题1. 若需要利⽤形参直接访问实参,则应把形参变量说明为( B )参数。
A. 指针B. 引⽤C. 传值D. 常值2. 以下说法错误的是(C )。
A. 抽象数据类型具有封装性。
B. 抽象数据类型具有信息隐蔽性。
C. 使⽤抽象数据类型的⽤户可以⾃⼰定义对抽象数据类型中数据的各种操作。
D. 抽象数据类型的⼀个特点是使⽤与实现分离。
3. 设有⼀个n n的对称矩阵A,将其上三⾓部分按⾏存放在⼀个⼀维数组B中,A[0][0]存放于B[0]中,那么第i⾏的对⾓元素A[i][i]存放于B中(C)处。
A. (i+3)*i/2B. (i+1)*i/2C. (2n-i+1)*i/2D. (2n-i-1)*i/24. 已知单链表A长度为m,单链表B长度为n,若将B联接在A的末尾,其时间复杂度应为( C )。
A. O(1)B. O(m)C. O(n)D. O(m+n)5. 假定⼀个链式队列的队头和队尾指针分别为front和rear,则判断队空的条件为( D)。
A. front == rearB. front != NULLC. rear != NULLD. front == NULL6. 设有⼀个递归算法如下int fact(int n) { //n⼤于等于0if(n<=0) return 1;else return n*fact(n-1);}则计算fact(n)需要调⽤该函数的次数为( B )次。
A.n B.n+1 C.n+2 D.n-17. 在⼀棵⾼度为h(假定树根结点的层号为0)的完全⼆叉树中,所含结点个数不⼩于( D )。
A. 2h-1B. 2h+1C. 2h-1D. 2h8. ⼀棵树的⼴义表表⽰为a(b,c(e,f(g)),d),当⽤左⼦⼥-右兄弟链表表⽰时,右指针域⾮空的结点个数为( C )。
A 1B 2C 3D 49. 向具有n个结点的、结构均衡的⼆叉搜索树中插⼊⼀个元素的时间复杂度⼤致为( B)。
数据结构复习题(带答案)
装订第 1 页 共 11 页一、选择题1.设某数据结构的二元组形式表示为A=(D ,R),D={01,02,03,04,05,06,07,08,09},R={r},r={<01,02>,<01,03>,<01,04>,<02,05>,<02,06>,<03,07>,<03,08>,<03,09>},则数据结构A 是( B )。
(A )线性结构 (B )树型结构 (C )物理结构 (D )图型结构 2.树最适合用来表示( C )。
(A )有序数据元素 (B )无序数据元素(C )元素之间具有分支层次关系的数据 (D )元素之间无联系的数据3. 设一组初始记录关键字序列为(50,40,95,20,15,70,60,45),则以增量d=4的一趟希尔排序结束后前4条记录关键字为( B )。
(A) 40,50,20,95 (B) 15,40,60,20 (C) 15,20,40,45 (D) 45,40,15,204. 算法的计算量的大小称为计算的( B )。
(A) 效率 (B) 复杂性 C. 现实性 D. 难度5. 设一维数组中有n 个数组元素,则读取第i 个数组元素的平均时间复杂度为( C )。
(A) O(n) (B) O(nlog 2n) (C) O(1) (D) O(n) 6.下面算法的时间复杂度为( B )。
int f(int n) {if(n==0||n==1)return 1; else return n*f(n-1); }(A) O(1) (B)O(n) (C)O(n2) (D) O(n!) 7. 以下哪一个不是队列的基本运算?( A )(A )在队列第i 个元素之后插入一个元素 (B )从队头删除一个元素 (C )判断一个队列是否为空 (D )读取队头元素的值 8.不含任何结点的空树。
( C )(A)是一棵树; (B)是一棵二叉树;(C)是一棵树也是一棵二叉树 (D)既不是树也不是二叉树9. 若某线性表的常用操作是取第i 个元素及其前趋元素,则采用( A )存储方式最节省时间。
《数据结构》复习题
《数据结构》复习题一、填空题1.数据结构中评价算法的两个重要指标是和。
2.数据元素之间有多种关系,其中常见的关系有、、、。
3.线性表的顺序存储是用实现的。
4.在长度为n的顺序表中插入一个元素,等概率的情况下的平均移动元素的次数是。
5.三个结点可构成种不同形态的二叉树。
6.对于栈只能在 (位置)插入和删除元素。
7.对矩阵压缩是为了。
8.深度为k的完全二叉树至少有个结点,至多有个结点。
9.对于一棵具有n个结点的二叉树,当进行链接存储时,其二叉链表中的指针域的总数为个,其中个用于链接孩子结点。
10.对二叉排序树进行遍历,可得到排好序的递增结点序列。
11.N个顶点的连通图的生成树含有条边。
12.己知有序表为(12,18,24,35,47,50,62,83,90,115,134)当用二分法查找90时,需次查找成功,47时成功,查100时,需次才能确定不成功。
13.算法的计算量的大小称为计算的____14.在线性表的顺序存储中,元素之间的逻辑关系是通过__ __决定的;在线性表的链接存储中,元素之间的逻辑关系是通过____决定的。
15.对于一个具有N个结点的单链表,在已知的结点*P后插入一个新结点的时间复杂度为____,在给定值为X的结点后插入一个新结点的时间复杂度为____.16.无论对于顺序存储还是链接存储的队列来说,进行插入或删除运算的时间复杂度均相同为____.17.对于一棵具有n个结点的树,该树中所有结点的度数之和为____18.在一个完全二叉树的顺序存储中,若一个结点的下标为i,则它的左子女结点的下标为____,右子女结点的下标为____.19.对于一棵具有n个结点的二叉树,对应二叉链表中指针总数为____个,其中____个用于指向子女结点,____个指针空闲着20.以折半搜索方法搜索一个线性表时,此线性表必须是____存储的____表21.在一个无向图中,所有顶点的度数之和等于所有边数的____倍。
数据结构-复习题-答案
数据结构-复习题-答案一、选择题1. 数据结构是指()。
A. 一组数据的存储结构B. 一组数据的算法C. 一组数据的完整性D. 一组数据的遍历方式答案:A2. 数组是一种()数据结构。
A. 线性B. 非线性C. 树形D. 图形答案:A3. 链表是一种()数据结构。
A. 线性B. 非线性D. 图形答案:A4. 栈是一种()数据结构。
A. 线性B. 非线性C. 树形D. 图形答案:A5. 队列是一种()数据结构。
A. 线性B. 非线性C. 树形D. 图形答案:A6. 树是一种()数据结构。
A. 线性C. 树形D. 图形答案:B7. 图是一种()数据结构。
A. 线性B. 非线性C. 树形D. 图形答案:D8. 哈希表是一种()数据结构。
A. 线性B. 非线性C. 树形D. 图形答案:A9. 排序算法中,选择排序的时间复杂度是()。
B. O(logn)C. O(n)D. O(n^2)答案:D10. 排序算法中,快速排序的时间复杂度是()。
A. O(1)B. O(logn)C. O(n)D. O(n^2)答案:D二、填空题1. 在数组中,下标表示()。
答案:元素在数组中的位置2. 链表的结构中,节点包含()。
答案:数据元素和指向下一个节点的指针3. 树的根节点位于()。
答案:最顶层4. 图的节点间的关系可以用()表示。
答案:边5. 哈希表通过()进行快速的数据查找。
答案:哈希函数三、简答题1. 数据结构是什么,它的作用是什么?答:数据结构是一种组织和存储数据的方式,它的作用是使数据能够高效地进行操作和处理。
通过选择合适的数据结构,我们可以提高算法的效率,减少资源的浪费。
2. 数组和链表的区别是什么?答:数组是一种连续存储的数据结构,它的元素在内存中占用连续的空间。
链表则是一种离散存储的数据结构,它的元素在内存中可以分布在任意的位置。
数组的插入和删除操作比较耗时,而链表则可以快速进行插入和删除操作。
3. 栈和队列的特点及各自的应用场景是什么?答:栈是一种后进先出(LIFO)的数据结构,常用于实现递归调用、表达式求值等场景。
数据结构复习资料(题目和参考答案)
数据结构复习题及参考答案(抽考其中50%)一、单选题(每小题1分)1.下列程序段的时间复杂度为(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)2.下列程序段的时间复杂度为(A )。
i=0,s=0;while (s<n) {s=s+i ;i++;}(A) O(n 1/2) (B) O(n 1/3) (C) O(n) (D) O(n 2)3.设顺序表中有n 个数据元素,则删除表中第i 个元素需要移动(A )个元素。
(A) n-i (B) n+l-i (C) n-1-i (D) i4.设某链表中最常用的操作是在链表的尾部插入或删除元素,则选用下列(D )存储方式最节省运算时间。
(A) 单向链表 (B) 单向循环链表(C) 双向链表 (D) 双向循环链表5.设F 是由1T 、2T 和3T 三棵树组成的森林,与F 对应的二叉树为B ,1T 、2T 和3T 的结点数分别为1n 、2n 和3n ,则二叉树B 的根结点的左子树的结点数为(A )。
(A) 11n - (B) 21n - (C) 23n n + (D) 13n n +6.设指针q 指向单链表中结点A ,指针p 指向单链表中结点A 的后继结点B ,指针s 指向被插入的结点X ,则在结点A 和结点B 插入结点X 的操作序列为(B )。
(A) s->next=p->next ;p->next=-s ; (B) q->next=s ; s->next=p ;(C) p->next=s->next ;s->next=p ; (D) p->next=s ;s->next=q ;7.利用直接插入排序法的思想建立一个有序线性表的时间复杂度为(C )。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数据结构》复习题第1部分引论二、选择1.链式存储结构中,每个数据的存储结点里指向邻接存储结点的指针,用以反映数据间的逻辑关系。
A.只能有1个B.只能有2个C.只能有3个D.可以有多个2.有下面的算法段:for (i=0; i<n; i++)k++;其时间复杂度为。
A.O(1) B.O(n) C.O(log2n) D.O(n2)四、应用1.给出下面3个算法段的时间复杂度:(1)x++;(2)for (j=1; j<n; j++)x++;(3)for (j=1; j<=n; j++)for (k=1; k<=m; k++)x++;答:(1)(2)(3)第2部分线性表一、填空1.以顺序存储结构实现的线性表,被称为。
2.以链式存储结构实现的线性表,被称为。
3.不带表头结点的链表,是指该链表的表头指针直接指向该链表的。
4.顺序表Sq = (a1,a2,a3,…,a n)(n≥1)中,每个数据元素需要占用w个存储单元。
若m为元素a1的起始地址,那么元素a n的存储地址是。
5.当线性表的数据元素个数基本稳定、很少进行插入和删除操作,但却要求以最快的速度存取表中的元素时,我们应该对该表采用存储结构。
二、选择1.下面,对非空线性表特点的论述,是正确的。
A.所有结点有且只有一个直接前驱B.所有结点有且只有一个直接后继C.每个结点至多只有一个直接前驱,至多只有一个直接后继D.结点间是按照1对多的邻接关系来维系其逻辑关系的2.带表头结点的单链表Lk_h为空的判定条件是。
A.Lk_h == NULL B.Lk_h->Next == NULLC.Lk_h->Next == Lk_h D.Lk_h != NULL3.往一个顺序表的任一结点前插入一个新数据结点时,平均而言,需要移动个结点。
A.n B.n/2C.n+1 D.(n+1)/24.在一个单链表中,已知qtr所指结点是ptr所指结点的直接前驱。
现要在qtr所指结点和ptr所指结点之间插入一个rtr所指的结点,要执行的操作应该是。
A.rtr->Next = ptr->Next; ptr->Next = rtr;B.ptr->Next = rtr->Next;C.qtr->Next = rtr; rtr->Next = ptr;D.ptr->Next = rtr; rtr->Next = qtr->Next;5.在一个单链表中,若现在要删除ptr指针所指结点的直接后继结点,则需要执行的操作是。
A.ptr->Next = ptr->Next->Next ;B.ptr = ptr->Next; ptr->Next = ptr->Next->Next ;C.ptr = ptr->Next->Next ;D.ptr->Next= ptr ;6.在长度为n的顺序表中,往其第i个元素(1≤i≤n)之前插入一个新的元素时,需要往后移动个元素。
A.n-i B.n-i+1 C.n-i-1 D.i7.在长度为n的顺序表中,删除第i个元素(1≤i≤n)时,需要往前移动个元素。
A.n-i B.n-i+1 C.n-i-1 D.i8.设tail是指向一个非空带表头结点的循环单链表的尾指针。
那么,删除链表起始结点的操作应该是。
A.ptr = tail ; B.tail = tail->Next ;tail = tail->Next ; free (tail) ;free (ptr);C.tail = tail->Next->Next ; D.ptr = tail->Next->Next ;free (tail); tail->Next->Next = ptr->Next ;free (ptr); free (ptr);9.在单链表中,如果指针ptr所指结点不是链表的尾结点,那么在ptr之后插入由指针qtr所指结点的操作应该是。
A.qtr->Next = ptr ; B.qtr->Next = ptr->Next ;ptr->Next = qtr ; ptr->Next = qtr ;C.qtr->Next = ptr->Next ; D.ptr->Next = qtr ;ptr = qtr ; qtr->Next = ptr ;四、应用1.设计一个计算带表头结点的单链表L的长度(即结点个数)的算法。
typedef struct node *link ;typedef struct node{ ListItem element ;link next;}Node;2、已知一个带表头结点的无序单链表L。
试编写一个算法,功能是从表中找出最大值和最小值。
typedef struct node{ ListItem element ;struct node next;}Node, *link;3.已知一个带表头结点的无序单链表L,不同结点的Data域值有可能相同。
编写一个算法,功能是计算出Data域值为x的结点的个数。
typedef struct node *link ;typedef struct node{ ListItem data;link next;}Node;第3部分栈与队列一、填空1.限定插入和删除操作只能在一端进行的线性表,被称为是。
2.如果在顺序栈满时仍打算进行进栈操作,就称为发生了“”出错。
3.如果在顺序栈空时仍打算进行出栈操作,就称为发生了“”出错。
4.在具有n个数据结点的循环队列中,队满时共有个数据元素。
5.如果操作顺序是先让字母A、B、C进栈,做两次出栈;再让字母D、E、F进栈,做一次出栈;最后让字母G进栈,做三次出栈。
最终这个堆栈从栈顶到栈底的余留元素应该是。
6.队列中,允许进行删除的一端称为。
二、选择1.一个栈的元素进栈序列是a、b、c、d、e,那么下面的不能做为一个出栈序列。
A.e、d、c、b、a B.d、e、c、b、aC.d、c、e、a、b. D.a、b、c、d、e2.判定一个顺序队列Qs(最多有n个元素)为空的条件是。
A.Qs_rear-Qs_front == n*size B.Qs_rear-Qs_front+1 == n*sizeC.Qs_front == Qs_rear D.Qs_front == Qs_rear+size 3.链栈与顺序栈相比,一个较为明显的优点是。
A.通常不会出现栈空的情形B.插入操作更加便利C.删除操作更加便利D.通常不会出现栈满的情形4.一个循环队列的最大容量为m+1,front为队首指针,rear为队尾指针。
那么进队操作时求队位号应该使用公式。
A.Cq_front = (Cq_front+1)%m B.Cq_front = (Cq_front+1)%(m+1)C.Cq_rear = (Cq_rear+1)%m D.Cq_rear = (Cq_rear+1)%(m+1) 5.在一个循环顺序队列里,队首指针Cq_front总是指向。
A.队首元素B.队首元素的前一个队位C.任意位置D.队首元素的后一个队位6.若一个栈的进栈序列是1、2、3、4,那么要求出栈序列为3、2、1、4时,进、出栈操作的顺序应该是。
(注:所给顺序中,I表示进栈操作,O表示出栈操作)A.IIIOOOIO B.IOIOIOIO C.IIOOIOIO D.IOIIIOOO第4部分树一、填空1.树中结点的度,是指结点拥有的个数。
2.树中除根结点外,其他结点有且只有前驱结点,但可以有后继结点。
3.在数据结构中,把n(n≥0)棵互不相交的树的集合称为。
4.在如图6-21所示的树中,,结点H的祖先是。
图6-21 树示例图6-22 树示例5.在树中,一个结点的孩子个数,称为该结点的。
6.一棵树的形状如图6-22所示。
它的根结点是,叶结点是,这棵树的度是,这棵树的深度是,结点F的孩子结点是,结点G的父结点是,结点是结点R的祖先。
7.结点数为7的二叉树的高度最矮是,最高是。
8.如果一棵满二叉树的深度为6,那么它共有个结点,有个叶结点。
9.由n个带权值的叶结点生成的哈夫曼树,最终共有个结点。
10.将一棵完全二叉树按层次进行编号。
那么,对编号为i的结点,如果有左孩子,则左孩子的编号应该是;如果有右孩子,则右孩子的编号应该是。
11.若二叉树共有n个结点,采用二叉链表存储结构。
那么在所有存储结点里,一共会有个指针域,其中有个指针域是空的。
12.深度为5的二叉树,至多有个结点。
二、选择1.已知一棵单右支的二叉树,如下左图所示。
把它还原成森林,应该是。
A.B.C.D.2.将一棵树Tr转换成相应的二叉树Bt,那么对Tr的先序遍历是对Bt的。
A.先序遍历B.中序遍历C.后序遍历D.无法确定3.将一棵树Tr转换成相应的二叉树Bt,那么对Tr的后序遍历是对Bt的。
A.先序遍历B.中序遍历C.后序遍历D.无法确定4.设森林F中有3棵树,依次有结点n1、n2、n3个。
把该森林转换成对应的二叉树后,该二叉树的右子树上的结点个数是。
A.n1 B.n1+n2 C.n3 D.n2+n3 5.设有由三棵树T1、T2、T3组成的森林,其结点个数分别为n1、n2、n3。
与该森林相应的二叉树为Bt。
则该二叉树根结点的左子树中应该有结点个。
A.n1-1 B.n1 C.n1+1 D.n1+n26.一棵有n个结点的树,在把它转换成对应的二叉树之后,该二叉树根结点的左子树上共有个结点。
A.n-2 B.n-1 C.n+1 D.n+27.一棵有n个结点的树,在把它转换成对应的二叉树之后,该二叉树根结点的右子树上共有个结点。
A.0 B.n C.n+1 D.n+28.下列说法中,正确的是。
A.树的先序遍历序列与其对应的二叉树的先序遍历序列相同B.树的先序遍历序列与其对应的二叉树的后序遍历序列相同C.树的后序遍历序列与其对应的二叉树的先序遍历序列相同D.树的后序遍历序列与其对应的二叉树的后序遍历序列相同9.在所给的4棵二叉树中,不是完全二叉树。
10.设有一棵5个结点的二叉树,其先序遍历序列为:A-B-C-D-E,中序遍历序列为:B-A-D-C-E,那么它的后序遍历序列为。
A.A-B-D-E-C B.B-D-E-C-AC.D-E-C-A-B D.A-B-C-D-E11.将一棵有50个结点的完全二叉树按层编号,那么编号为25的结点是。
A.无左、右孩子B.有左孩子,无右孩子C.有右孩子,无左孩子D.有左、右孩子12.深度为6的二叉树,最多可以有个结点。