数据结构图,查找,内排序的练习及答案

合集下载

数据结构练习(附答案)

数据结构练习(附答案)

习题一绪论.1.1 单项选择题1. 数据结构是一门研究非数值计算的程序设计问题中计算机的① A 以及它们之间的② B 和运算等的学科。

①A.操作对象B.计算方法C.逻辑存储D.数据映象②A.结构B.关系C.运算D.算法2. 数据结构被形式地定义为(K,R),其中K是① B 的有限集合,R是K上的②D 有限集合。

①A.算法B.数据元素C.数据操作D.逻辑结构②A.操作B.映象C.存储D.关系3. 在数据结构中,从逻辑上可以把数据结构分成 C 。

A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部结构4. 线性表的顺序存储结构是一种① A 的存储结构,线性表的链式存储结构是一种② B 的存储结构。

A.随机存取B.顺序存取C.索引存取D.散列存取5. 算法分析的目的是① C ,算法分析的两个主要方面是② A B 。

① A. 找出数据结构的合理性 B. 研究算法中的输入和输出的关系C. 分析算法的效率以求改进D. 分析算法的易懂性和文档性② A. 空间复杂性和时间复杂性 B. 正确性和简明性C. 可读性和文档性D. 数据复杂性和程序复杂性6. 计算机算法指的是① C ,它必具备输入、输出和② B 等五个特性。

①A. 计算方法 B. 排序方法C. 解决问题的有限运算序列D. 调度方法②A. 可行性、可移植性和可扩充性 B. 可行性、确定性和有穷性C. 确定性、有穷性和稳定性D. 易读性、稳定性和安全性7. 线性表的逻辑顺序与存储顺序总是一致的,这种说法 B 。

A. 正确B. 不正确8. 线性表若采用链式存储结构时,要求内存中可用存储单元的地址 D 。

A. 必须是连续的B. 部分地址必须是连续的C. 一定是不连续的D. 连续或不连续都可以9. 在以下的叙述中,正确的是 B 。

A.线性表的线性存储结构优于链表存储结构B.二维数组是其数据元素为线性表的线性表C.栈的操作方式是先进先出D.队列的操作方式和先进后出10. 每种数据结构都具备三个基本运算:插入、删除和查找,这种说法 B 。

数据结构及应用算法教程习题第三章 排序

数据结构及应用算法教程习题第三章  排序

第三章排序一、选择题1.某内排序方法的稳定性是指( D )。

A.该排序算法不允许有相同的关键字记录、B.该排序算法允许有相同的关键字记录C.平均时间为0(n log n)的排序方法 D.以上都不对2.下面给出的四种排序法中( )排序法是不稳定性排序法。

A. 插入B. 冒泡C. 二路归并D. 快速排序3.下列排序算法中,其中( CD )是稳定的。

A. 堆排序,冒泡排序B. 快速排序,堆排序C. 直接选择排序,归并排序D. 归并排序,冒泡排序6.若要求尽可能快地对序列进行稳定的排序,则应选( B )。

A.快速排序 B.归并排序 C.冒泡排序12.排序趟数与序列的原始状态有关的排序方法是( D )排序法。

A.插入 B. 选择 C. 冒泡 D. 快速17.数据序列(8,9,10,4,5,6,20,1,2)只能是下列排序算法中的( C )的两趟排序后的结果。

A.选择排序 B.冒泡排序 C.插入排序18.数据序列(2,1,4,9,8,10,6,20)只能是下列排序算法中的( A )的两趟排序后的结果。

A. 快速排序B. 冒泡排序C. 选择排序D. 插入排序19.对一组数据(84,47,25,15,21)排序,数据的排列次序在排序的过程中的变化为(1) 84 47 25 15 21 (2) 15 47 25 84 21 (3) 15 21 25 8447 (4) 15 21 25 47 84,则采用的排序是 ( A )。

A. 选择B. 冒泡C. 快速D. 插入24.下列序列中,( D )是执行第一趟快速排序后所得的序列。

A. [68,11,18,69] [23,93,73]B. [68,11,69,23] [18,93,73]C. [93,73] [68,11,69,23,18]D. [68,11,69,23,18] [93,73]28.下列排序算法中,在待排序数据已有序时,花费时间反而最多的是( C )排序。

数据结构练习题及答案

数据结构练习题及答案

数据结构练习题(一)一、单选题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.对于线性表(7,34,55,25,64,46,20,10)进行散列存储时,若选用H(K)=K %9作为散列函数,则散列地址为1的元素有()个。

A.1 B.2 C.3 D.49.设有6个结点的无向图,该图至少应有( )条边才能确保是一个连通图。

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

2.一个算法的时间复杂度为(n3+n2log2n+14n)/n2,其数量级表示为________。

3.假定一棵树的广义表表示为A(C,D(E,F,G),H(I,J)),则树中所含的结点数为__________个,树的深度为___________,树的度为_________。

数据结构练习题

数据结构练习题

1.顺序存储结构中数据元素之间的逻辑关系是由(存储位置)表示的。

2.若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用(顺序表)存储方式最节省时间。

3. 执行下面程序段时,语句S的执行次数为(n+1)(n+2)/24 对于线性表最常用的操作是查找指定序号的元素和在末尾插入元素,则选择(顺序表)存储方式最节省时间。

5.在长度为n的顺序表的第i个位置上插入一个元素(1≤ i ≤n+1),元素的移动次数为:n – i + 16.非空的单循环链表由头指针head指示,p 指针指向链尾结点的条件是(p->next==head)。

7.下列选项中,(可以随机访问表中的任意元素)是链表不具有的特点。

8.假设有如下遗产继承规则:丈夫和妻子可以相互继承遗产;子女可以继承父亲或母亲的遗产;子女间不能相互继承。

则表示该遗产继承关系的最合适的数据结构应该是(图)。

9.栈和队列的共同点是(只允许在端点处插入和删除元素)10.一个队列的入队序列是a,b,c,d,则该队列的出队序列是(a,b,c,d)。

11.带头结点的单链表h为空的判断条件是(h->next== NULL)。

12. 下面关于串的叙述中,哪一个是不正确的?(空串是由空格构成的串)13.判断一个最大容量为m的循环队列Q为空的条件是(Q->front==Q->rear)。

14.在一棵树中,每个节点最多有(1)前驱节点?15.已知完全二叉树的第7层有10个叶子结点,则整个二叉树中结点数为(73)。

16. 下面的说法中,不正确的是(稀疏矩阵中大量值为零的元素分布有规律,因此可以采用三元组表方法存储)17.在一棵深度为k的满二叉树中,结点总数为(2k-1)18.数组A中,每个元素的长度为3个字节,行下标从1到5,列下标从1到6,从首地址SA开始连续存放在存储器内,存放该数组至少需要的字节数是(90)。

19. 如果从无向图的任一顶点出发进行一次深度优先搜索即可访问所有的顶点,则该图一定是(连通图)。

数据结构试题及答案

数据结构试题及答案

数据结构试题及答案⼀、选择题(共10题,每题1分,共10分)1.下⾯关于线性表的叙述中,错误的是哪⼀个?()A.线性表采⽤顺序存储,必须占⽤⼀⽚连续的存储单元B.线性表采⽤顺序存储,便于进⾏插⼊和删除操作C.线性表采⽤链接存储,不必占⽤⼀⽚连续的存储单元D.线性表采⽤链接存储,便于插⼊和删除操作2.在⼀个单链表中,已知q所指结点是p所指结点的前驱,若在p和q之间插⼊s所指结点,则执⾏的操作是()。

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;3.设有三个元素X,Y,Z顺序进栈,下列得不到的出栈排列是( )。

A.XYZ B. YZX C. ZXY D. ZYX4.若⽤⼀个长度为6的数组来实现循环队列,且当前rear和front的值分别为0和3,则从队列中删除⼀个元素,再增加两个元素后,rear和front的值分别是( )。

A.1和5 B.2和4 C.4和2 D. 5和15.下列说法中正确的是()。

A.⼆叉树就是度为2的树 B.⼆叉树中不存在度⼤于2的结点C.⼆叉树中⾄少有⼀个结点的度为2 D.⼆叉树中任何⼀个结点的度都为2 6.在具有n个结点的⼆叉链表中,共有()个空指针。

A. nB. n-1C. n+1D. 不确定7.根据⼆叉树与树的转换关系可知,深度为h的满⼆叉树对应的森林由()棵树构成。

A.1 B.log2n C. h/2 D. h8.在⼀个⽆向图中,所有顶点的度数之和等于所有边数的()倍。

A.1/2 B.1 C. 2 D. 49.对17个元素的查找表做折半查找,则查找长度为5的元素下标依次是()。

A.8,17 B.5,10,12 C.9,16 D.9,1710.关于排序,下列说法中正确的是()。

数据结构练习附答案

数据结构练习附答案

一、单项选择题1.逻辑关系是指数据元素间的()A.类型B.存储方式C.结构D.数据项2.对于只在表的首、尾两端进行插入操作的线性表,宜采用的存储结构为( )A.顺序表 B.用头指针表示的单循环链表C. 用尾指针表示的单循环链表D. 单链表3.设数组data[m]作为循环队列SQ的存储空间,front为队头指针,rear为队尾指针,则执行出队操作后其头指针front值为()A.front=front+1B.front=(f ront+1)%(m-1)C.front=(front-1)%m D.front=(front +1)%m4.在具有n个单元的顺序存储的循环队列中,假定front和rear分别为队头指针和队尾指针,则判断队满的条件为( )。

A.rear%n==front B.(front+l)%n==rearC.rear%n-1==front D.(rear+l)%n==front5.在具有n个单元的顺序存储的循环队列中,假定front和rear分别为队头指针和队尾指针,则判断队空的条件为( )。

A.rear%n==front B.front+l=rearC.rear==front D.(rear+l)%n=front6.已知一颗二叉树上有92个叶子结点,则它有____个度为2的结点。

( )A. 90B. 91C. 92D. 937.在一棵非空二叉树的中序遍历序列中,根结点的右边_____。

A. 只有右子树上的所有结点B. 只有右子树上的部分结点C. 只有左子树上的所有结点D. 只有左子树上的部分结点8.有n条边的无向图的邻接表存储法中,链表中结点的个数是( )个。

A. nB. 2nC. n/2D. n*n9.判断有向图是否存在回路,除了可利用拓扑排序方法外,还可以利用()。

A. 求关键路径的方法B.求最短路径的方法C. 深度优先遍历算法D.广度优先遍历算法10.对线性表进行二分查找时,要求线性表必须( )。

数据结构画图题复习资料

数据结构画图题复习资料

2.应用题(1)试找出满足下列条件的二叉树① 先序序列与后序序列相同 ②中序序列与后序序列相同 ③ 先序序列与中序序列相同 ④中序序列与层次遍历序列相同 先序遍历二叉树的顺序是“根—左子树—右子树”,中序遍历“左子树—根—右子树”,后序遍历顺序是:“左子树—右子树―根",根据以上原则,本题解答如下: (1) 若先序序列与后序序列相同,则或为空树,或为只有根结点的二叉树(2) 若中序序列与后序序列相同,则或为空树,或为任一结点至多只有左子树的二叉树. (3) 若先序序列与中序序列相同,则或为空树,或为任一结点至多只有右子树的二叉树.(4) 若中序序列与层次遍历序列相同,则或为空树,或为任一结点至多只有右子树的二叉树(2)设一棵二叉树的先序序列: A B D F C E G H ,中序序列: B F D A G E H C①画出这棵二叉树。

②画出这棵二叉树的后序线索树。

③将这棵二叉树转换成对应的树(或森林)。

(1) (2)(4)已知下列字符A 、B 、C 、D 、E 、F 、G 的权值分别为3、12、7、4、2、8,11,试填写出其对应哈夫曼树HT 的存储结构的初态和终态。

初态:ABFD (CE HG终态(1)已知如图6.27所示的有向图,请给出: ① 每个顶点的入度和出度; ② 邻接矩阵; ③ 邻接表;④ 逆邻接表。

(2)已知如图6.28所示的无向网,请给出: ① 邻接矩阵; ② 邻接表; ③ 最小生成树图 6.28 无图 6.27 有⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞6456252363794567555553955434→→→ → →→ → → →→ → → →→ → → →^ → →→^→ → →^ → → →^(3)已知图的邻接矩阵如6.29所示。

试分别画出自顶点1出发进行遍历所得的深度优先生成树和广度优先生成树。

数据结构习题答案一

数据结构习题答案一

数据结构习题答案一评论:0 条查看:40 次zjw313014322发表于2009-04-21 16:25一、选择题1. 下面说法错误的是 C 。

(1)算法原地工作的含义是指不需要任何额外的辅助空间。

(2)在相同的规模n下,复杂度O(n)的撒在时间上总是优于复杂度O(2n)的算法。

(3)所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界。

(4)同一个算法,实现语言的级别越高,执行效率越低。

A、(1)B、(1)(2)C、(1)(4)D、(3)2. 一个递归算法必须包括 B 。

A、递归部分B、终止条件和递归部分C、迭代部分D、终止条件和迭代部分3. 数据的 C 包括查找、插入、删除、更新、排序等操作类型。

A、存储结构B、逻辑结构C、基本运算D、算法描述4. 在数据结构中,从逻辑上可以把数据结构分成 C 。

A、动态结构和静态结构B、紧凑结构和非紧凑结构C、线性结构和非线性结构D、内部结构和外部结构5. 与数据元素本身的形式、内容、相对位置、个数无关的是数据的 C 。

A、存储结构B、存储实现C、逻辑结构D、运算实现6. 通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着 B 。

A、数据具有同一特点B、不仅数据元素所包含的数据项的个数要相同,而且对应数据项的类型要一致C、每个数据元素都一样D、数据元素所包含的数据项的个数要相等7. 以下说法正确的是 D 。

A、数据元素是数据的最小单位B、数据项是数据的基本单位C、数据结构是带有结构的各数据项的集合D、一些表面上很不相同的数据可以有相同的逻辑结构8. 以下说法错误的是 A 。

A、程序设计的实质是数据处理B、数据的逻辑结构是数据的组织形式,基本运算规定了数据的基本操作方式C、运算实现是完成运算功能的算法或这些算法的设计D、数据处理方式总是与数据的某种相应表示形式相联系,反之亦然9. 下列程序段的时间复杂度为 B 。

x=n;y=0;while (x>=(y+1)*(y+1))y=y+1;A、O(n)B、O(n1/2)C、O(1)D、O(n2)10. 下列叙述中有关好的编程风格的正确描述是 C 。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据结构课后练习
习题要求: 此次练习不要求上交,只是帮助大家掌握知识点,便于复习。
第八章 图
一.单项选择题(20 分)
1. 带权有向图 G 用邻接矩阵 A 存储,则 Vi 的入度等于 A 中___D______
A. 第 i 行非∞的元素只和
B. 第 i 列非∞的元素之和
C. 第 i 行非∞且非 0 的元素之和

A. 1,2,3,4,5
B. 1,2,3,5,4
C. 1,2,4,5,3
D. 1,2,5,3,4
7. 对右图所示的无向图,从顶点 V1 开始进行深度 优先遍历,可得到顶点访问序列__A______
(提示:可先画出邻居表图再遍历)
A. 1 2 4 3 5 7 6
B. 1 2 4 3 5 6 7
C. 1 2 4 5 6 3 7
四. 分析题 有一个带权图,其邻接矩阵的数组表示如右图: 试完成下列要求: (1)写出该图上从顶点 1 触发进行深度优先遍历 的顶点序列,并据此判断该图是否为连通图。 (2)画出该图的带权邻接表 (3)画出按 Kruskal 算法构造最小生成树(森林) 的示意图。 解答: (1)从顶点 1 出发的一个深度优先遍历的顶点序 列为:1,2,3,8,7,4,5,6。据此判断该图不是连通图。 (2)该图的带权邻接表如下图所示(特别注意:带权图要将权值放到结点中)
D. 散列查找
2. 在数据元素有序,元素个数较多而且固定不变的情况下,宜采用___A____
A. 二分查找
B. 分块查找
C. 二叉排序树查找
D. 顺序查找
3. 有一个长度为 12 的有序表,按二分查找法对该表进行查找,在表内各元素等概率情况下,
查找成功所需的平均比较次数为__B____。(提示:可借助二分查找判定树)
A. 35/12
B. 37/12
C.39/ 12
D. 43/12
4. 有一个有序表 R[1…13]={1,3,9,12,32,41,45,62,75,77,82,95,100},当采用二分查找法查找值
为 82 的结点时,经__C____次比较后查找成功(提示:二分查找判定树)。
A. 1
B. 2
C. 4
A. 9
B. 25
C. 6
D. 625
7. 设有 n 个关键字,散列查找法的平均查找长度是__A____。
A. O(1)
B. O(n)
C. O( log2 n )
D. O( n2 )
三. 分析题 1.教材 P272 的 9.2 解答:请参考相关课件 2.对于关键字序列{30,15,21,40,25,26,36,37},若装填因子为 0.8,采用线性探查法解决散列冲 突,完成以下各题:(提示:表长=关键字个数/装填因子) (1)设计散列函数 (2)画出散列表 (3)计算查找成功和查找失败的平均查找长度 解答: (1)由于装填因子为 0.8,关键字个数 n=8,所以表长 m=8/0.8=10。 用除留余数法,由于表长为 10,则 p=7,散列函数为 H(key)=key mod 7 (2)(!!!此处给出最后结果,中间过程必须计算,否则不给全分!!!)
D. 1 2 3 4 5 6 7
8. 如果从无向图的任一顶点出发进行一次深度优先搜索即可访问所有顶点,则该图一定是
__B_____ A. 完全图
B. 连通图
C.有回路
D. 一棵树
9. 任何一个无向连通图___B___最小生成树(提示:注意最小生成树的定义,此题易错)
A. 只有一棵
B. 一棵或多棵
C. 一定有多棵
(3)按 Kruskal 算法构造的生成森林为:(特别注意:下面的答案没有给过程,考试时应写 过程,如果过程正确将按步骤给分,如果没有过程,结果错误扣全部分数!!!)
第九章 查找
1. 只能在顺序存储结构上才能实现的查找方法是___B______(特别重要!!!)
A. 顺序查找
B. 二分查找
C. 树型查找
B. n(n-1)
C. n(n-1)/2
D.2n
5. 对于一个具有 n 个顶点的无向图,若采用邻接矩阵表示,则该矩阵大小是__D_____
A. n
B. (n −1)2
C. n-1
D. n2
6. 一个有向图 G 的邻接表存储如右图所示,现按深
度优先搜索遍历,从 V1 出发,所得到的顶点序
列是___B_____。
D.8
5. 如右图所示的一棵二叉排序树,其查找不成功的平均查找长度
是___A____.(提示:加方框结点表示不成功)
A. 12/7
B. 28/7
C. 15/6
D. 21/6
6. 采用分块查找时,若线性表有 625 个元素,查找每个元素的概 率相同,假设采用顺序查找来确定结点所在的块,则每块分为__B____个结点最佳。
D. 第 i 列非∞且非 0 的元素个数
2. 无向图的邻接矩阵是一个___A____
A. 对称矩阵
B. 零矩阵
C. 上三角阵
D. 对角矩阵
3. 在一个无向图中,所有顶点的度之和等于边数的__C____倍
A. 1/2
B. 1
C. 2
D. 4
4. 一个有 n 个顶点的无向图最多有___C____条边。
A. n
D.可能不存在
11. 若图的邻接矩阵中主对角线上的元素全是 0,其余元素全是 1,则可以断定该图一定是
_D_____。
A. 无向图
B. 不是带权图
C. 有向图
D. 完全图
二.填空题
1. 有 n 个结点的无向图最多有__n(n-1)/2___条边。
2. 有 n 个顶点的强连通有向图 G 至少有__n-1____条弧。 3. 对于一个具有 n 个顶点和 e 条边的无向图,若采用邻接表表示,则表头数组的大小为_n__, 所有邻接表中的结点总数是___2e___。 4. 对于 n 个顶点的无向图,采用邻接矩阵表示,求图中边数的方法是__邻接矩阵中 1 的个 数除以 2____,判断任意两个顶点 i 和 j 是否有边相连的方法是__A[i][j]是否为 1_____,求任 意一个顶点的度的方法是__计算该行或该列中 1 的个数____。 5. 对于 n 个顶点的有向图,采用邻接矩阵表示,求图中边数的方法是__邻接矩阵中 1 的个 数____,判断任意两个顶点 i 和 j 是否有边相连的方法是__A[i][j]是否为 1_____,求任意一个 顶点的度的方法是_出度为该行中 1 的个数,入度为该列中 1 的个数,顶点的度等于出度和 入的之和_____。 6. 对于 n 个顶点的无向图,采用邻接表表示,求图中边数的方法是__邻接表中结点的个数 (除头结点外)除以 2____,判断任意两个顶点 i 和 j 是否有边相连的方法是_从 i 表头结点开 头的链表中是否包含 j 结点______,求任意一个顶点的度的方法是__以 i 表头结点开头的链 表中结点个数____。 7. 连通分量是无向图中的__极大____连通子图。 8. 一个连通图的__生成树___是一个极小连通子图。
(3)(写出完整的算式给全分,只有结果的只给 1/3 分数)
查找成功的平均查找长度 ASLsucc=(1+1+1+3+1+1+2+6)/8=16/8=2 查找失败的平均查找长度 ASLunsucc=(9+8+7+6+5+4+3+2+1+1)/10=46/10=4.6
第十章 内排序
以关键字序列{256,301,751,129,937,863,742,694,076,438}为例,分别写出执 行以下排序算法的各趟排序结束时,关键字序列的状态: (1)直接插入排序 (2)希尔排序 (3)冒泡排序 (4)快速排序 (5)直接选择排序 (6)堆排序 (7)归并排序 (8)基数排序 比较各种排序算法的时间复杂度(平均情况、最坏情况、最好情况)和空间复杂度。(提示: 教材 P296) 例如:
解答: (1)直接插入排序
(2)希尔排序 (3)冒泡排序
(4)快速排序(见示例) (5)直接选择排序
(6)堆排序(大根堆)
(7)归并排序 (8)基数排序
相关文档
最新文档