数据结构复习题

合集下载

《数据结构》复习题题库

《数据结构》复习题题库

一、单项选择题(本大题共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)

数据结构复习习题和答案(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篇

数据结构复习题及答案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所指的结点,其操作为。

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

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

(完整版)数据结构复习题(附答案)⼀、算法设计题(每题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.评价一个算法时间性能的主要标准是()A.算法易于调试B. 算法易于理解C.算法的稳定性和正确性D.算法的时间复杂度2.可用带表头结点的链表来表示表,也可用不带表头结点的链表来表示表,前者的主要好处是()A.可以加快对表的遍历B.使空表和非空表的处理统一C.提高存取结点的速度D.节省存储空间3.稀疏矩阵一般的压缩存储有两种,即()。

A.一维数组和二维数组B.一维数组和三元组C.二维数组和十字链表D.三元组和十字链表4.链表不具有的特点是()。

A.可随机访问任一元素B.插入删除不需要移动元素C.不必事先估计存储空间D.所需空间与线性表的长度成正比5.非空的循环单链表head的尾结点p满足()。

A.P->next==NULL B.p==NULL C.P->next==head D.P==head 6.对稀疏矩阵进行压缩存储是为了()。

A.便于进行矩阵运算B.便于输入和输出C.节省存储空间D.降低运算的时间复杂度7.数据结构中,与所使用的计算机无关的是数据的()结构。

A.顺序B.物理C.逻辑D.物理和存储8.在长度为n的顺序表中插入一个元素时,等概率情况下的平均移动元素的次数是()。

A.(n-1)/2B.n/2C.n*(n-1)/2D.(n+1)/29.对于一个头指针为H的带头结点的单链表,判定该表为空表的条件是()A. H==NULL B.H!=NULL C.H→next ==H D.H→next==NULL10. 在一个顺序表中,若表的第一个元素的存储地址是210,每一个元素的长度为3,则第5个元素的存储地址是()。

A.219 B.222 C.225 D.22811. 栈S最多能容纳4个元素,现有6个元素按a,b,c,d,e,f的顺序进栈,下面序列()是可能的出栈序列。

A.edcbaf B.bcefad C.cbedaf D.adfebc12.循环队列用数组A[M]存放元素,已知其头尾指针分别为front和rear,则当前队列中的元素个数是()。

数据结构复习题(计算机大专)

数据结构复习题(计算机大专)

数据结构复习题1一、选择题1. 以下四类基本的逻辑结构反映了四类基本的数据组织形式,解释错误的是 ( ) A 、集合中任何两个结点之间都有逻辑关系但组织形式松散 B 、线性结构中结点按逻辑关系依次排列形成一条"锁链"C 、树形结构具有分支、层次特性,其形态有点像自然界中的树D 、图状结构中的各个结点按逻辑关系互相缠绕,任何两个结点都可以邻接2. 若结点的存储地址与其关键字之间存在某种映射关系,则称这种存储结构为( ) A 、顺序存储结构 B 、链式存储结构 C 、索引存储结构 D 、散列存储结构3. 在长度为n 的顺序表的第i (1≤i ≤n+1)个位置上插入一个元素,元素的移动次数为( ) A 、n-i+1 B 、n-i C 、i D 、i-14. 对于只在表的首、尾两端进行插入操作的线性表,宜采用的存储结构为( )A 、顺序表B 、用头指针表示的单循环链表C 、用尾指针表示的单循环链表D 、单链表5. 一个栈的入栈序列是a,b,c,d,e ,则栈的不可能的输出序列是( )A 、e d c b aB 、d e c b aC 、d c e a bD 、a b c d e6. 已知图1如右所示,若从顶点A 出发按深度优先搜索进行遍历,则可能得到的顶点序列为( ) A 、 A ,B ,E ,C ,D ,F B 、 A ,C ,F ,E ,B ,DC 、 A ,E ,B ,C ,F ,DD 、 A ,E ,D ,F ,C ,B7. n 个顶点的有向图中含有向边的数目最多为 ( )A 、n-1B 、nC 、n(n-1)/2D 、n(n-1) 8. 若一个栈的输入顺序是1,2,…,n ,输出序列的第一个元素是n ,则第i (1≤i ≤n )个输出元素是( )A 、n-iB 、n-i-1C 、i+1D 、n -i+1 9. 已给图2,( )是该图的正确的拓扑排序序列A 、1,2,3,4,5B 、1,3,2,4,5C 、1,2,4,3,5D 、1,2,3,5,4 10. 为查找某一特定单词在文本中出现的位置,可应用的串运算是( )A 、插入B 、删除C 、串联接D 、子串定位二、填空题A BC D E F 图1 1 2 34 5 图21.存储结构是逻辑结构的__________实现。

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

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

数据结构复习题(附答案)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 )。

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

向相反方向起泡
• void Insert_Sort1(SqList &L)//监视哨设 在高下标端的插入排序算法 { k=L.length; for(i=k-1;i;--i) //从后向前逐个插入排序 if(L.r[i].key>L.r[i+1].key) { L.r[k+1].key=L.r[i].key; //监视哨 for(j=i+1;L.r[j].key>L.r[i].key;++j) L.r[j-1].key=L.r[j].key; //前移 L.r[j-1].key=L.r[k+1].key; //插入 } }//Insert_Sort1

【解答】 (1) 直接插入排序
(3) 起泡排序
• (8) 二路归并排序 采用迭代的方法进行归并排序。设待排序 的数据对象有n个。首先把每一个待排序的 数据对象看作是长度为1的初始归并项,然 后进行两两归并,形成长度为2的归并项, 再对它们两两归并,形成长度为4的归并项, 如此一趟一趟做下去,最后得到长度为n的 归并结果。
一组记录的关键字为(46,79,56,38,40, 84),利用快速排序的方法,以第一个记录 为基准得到的一次划分结果为( )C
A、38,40,46,56,79,84
B、40,38,46,79,56,84
C、40,38,46,56,79,84
D、40,38,46,84,56,79
若需在O(nlog2n)的时间内完成对数组的排
序,且要求排序是稳定的,则可选择的排 序方法是( C ) A. 快速排序 B. 堆排序
C. 归并排序
D. 直接插入排序
【中国科技大学 1998 二、4(2分)】 【中科院计
算所 1998 二、4(2分)】
Байду номын сангаас •
(多选)排序趟数与序列的原始状态有关的 排序方法是( )排序法。【北京航空航天大学
1999 一、9(2分)】
• 如下改写教科书10.3节中所述起泡排序 算法:将1.4.3节的算法中用以起控制作 用的布尔变量change改为一个整型变量,
指示每一趟排序中进行交换的最后一个
记录的位置,并以它作为下一趟起泡排 序循环终止的控制值
• void Bubble_Sort1(int a[ ],int n)//对包含n个元素 的数组a进行改进的冒泡排序 {change=n-1; //change指示上一趟冒泡中最后发生 交换的元素 while(change) { for(c=0,i=0;i<change;i++) if(a[i]>a[i+1]) { a[i]<->a[i+1]; c=i+1; //c指示这一趟冒泡中发生交换的元素 } change=c; }//while }//Bubble_Sort1
• void Bubble_Sort2(int a[ ],int n)//相邻两趟是反方向起泡的冒泡排序算 法 { low=0;high=n-1; //冒泡的上下界 change=1; while(low<high&&change) { change=0; for(i=low;i<high;i++) //从上向下起泡 if(a[i]>a[i+1]) { a[i]<->a[i+1]; change=1; } high--; //修改上界 for(i=high;i>low;i--) //从下向上起泡 if(a[i]<a[i-1]) { a[i]<->a[i-1]; change=1; } low++; //修改下界 }//while }//Bubble_Sort2
设待排序的关键字序列为{12, 2, 16, 30, 28, 10, 16*, 20, 6, 18}, 试分别写出使用以下排序 方法每趟排序后的结果。(由小至大有序) (1)直接插入排序 (2) 希尔排序(增量为5,2,1)
(3) 起泡排序(先产生最小的)
(4) 快速排序 (5) 直接选择排序 (6) 堆排序(大顶堆,输出由大至小有序) (7) 二路归并排序
A.插入 C. 冒泡
CD
B. 选择 D. 快速
例如:12345和21354
对5个不同的数据元素进行直接插入 排序,最多需要进行 ( ) 次比较, 最少进行( )次比较 A. 8 B. 10
C. 14
CD
D. 4
设待排序序列为 {10, 18, 4, 3, 6,
12, 1, 9, 15, 8},请给出用希尔
排序每一趟的结果。增量序列取为5, 3, 2, 1。
• 算法题 • 试以L.r[k+1]作为监视哨改写教科书10.2.1 节中给出的直接插入排序算法,其中 L.r[1..k]为待排序记录且k<MAXSIZE • 编写一个双向起泡的排序算法,即相邻两遍
相关文档
最新文档