最新数据结构与算法在线作业答案

最新数据结构与算法在线作业答案
最新数据结构与算法在线作业答案

1.邻接表是图的一种____。

A 顺序存储结构

B 链式存储结构

C 索引存储结构

D 散列存储结构

2.具有5个顶点的有向完全图有____条弧。

A 10

B 16

C 20

D 25

3.链表不具有的特点是_____。

A 可随机访问任一元素

B 插入和删除不需要移动元素

C 不必事先估计存储空间

D 所需空间和线性表长度成正比

4.作进栈操作时,应先判断栈是否为_____。

A 空

B 满

C 上溢

D 下溢

5.下面关于图的存储的叙述中,哪一个是正确的?

A 用相邻矩阵法存储图,占用的存储空间数只与图中结点个数有关,而与边数无关

B 用相邻矩阵法存储图,占用的存储空间数只与图中边数有关,而与结点个数无关

C 用邻接表法存储图,占用的存储空间数只与图中结点个数有关,而与边数无关

D 用邻接表法存储图,占用的存储空间数只与图中边数有关,而与结点个数无关

6.当字符序列x5y 作为字符堆栈的输入时,输出长度为3的且可以作为C语言标识符的个数是____。

A 3个

B 4个

C 5个

D 6个

7.树最适合用来表示_____。

A 有序数据元素

B 无序数据元素

C元素之间具有分支层次关系的数据

D 元素之间无联系的数据

8.线性表按链式方式存储时,每个结点的存储包括_____两部分。

A 数据值与符号

B 数据与指针

C 数据与表名

D 数据项与符号

9.树的基本遍历策略可分为先根遍历和后根遍历;二叉树的基本遍历策略可分为先序遍历、中序遍历和后序遍历。这里我们把由树转化得到的二叉树叫做这棵树对应的二叉树。那么以下结论中_____是正确的。

A 树的先根遍历序列与其对应的二叉树的先序遍历序列相同

B 树的后根遍历序列与其对应的二叉树的后序遍历序列相同

C 树的先根遍历序列与其对应的二叉树的中序遍历序列相同

D 以上都不对

10.设深度为h的二叉树上只有度为0和度为2的结点,则此类二叉树中所包含的结点数至少为____(注意C和D中h为指数)。

A 2h-1

B 2(h-1)

C 2*h-1

D 2*h

11.关于二叉树的三种遍历,下列说法正确的是____。

A 任意两种遍历序列都不可以唯一决定该二叉树

B 任意两种遍历序列都可以唯一决定该二叉树

C 先序遍历序列和后序遍历序列可以唯一决定该二叉树

D 先序遍历序列和中序遍历序列可以唯一决定该二叉树

12.计算机算法是指______。

A 计算方法

B 排序方法

C 调度方法

D 解决问题的有限运算序列

13.若要求能快速地实现在链表的末尾插入和删除结点的运算,则选择_____最合适。

A 单链表

B带尾指针的单循环链表

C 双链表

D 双循环链表

14.下列关于图的生成树的唯一性,正确的是_____。

A 生成树是唯一的

B 生成树是不唯一的

C生成树是唯一性不确定

D 图的生成树有两棵

15.一组记录的关键字为(46,79,56,38,40,84),则利用快速排序的方法,以第一个记录为基准元素得到的一次划分结果为。

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

16.设散列表长为14,散列函数是H(key)=key%11,表中已有数据的关键字为15,38,61,84共四个,现要将关键字为49的结点加到表中,用二次探测法解决冲突,则放入的位置是____________。

A 8

B 3

C 5

D 9

17.如果某二叉树的先序遍历序列是abdcef,中序遍历序列是dbaefc,则其后序遍历序列是____。

A dbafec

B fecdba

C efcdba

D dbfeca

18.若构造一棵具有n个结点的二叉排序树,最坏的情况下其深度不会超过____。

A n/2

B n

C (n+1)/2

D n+1

19.设某二维数组A[1..n,1..n],则在该数组中用顺序查找法查找一个元素的时间复杂性的量级为______。

A O(log2n)

B O(n)

C O(nlog2n)

D O(n^2)

20.判断一个循环队列是空队列的条件是_____。

A Q.rear==Q.front

B Q.front==0

C Q.rear==0

D (Q.rear+1)%maxsize==Q.front

21.有m个叶子结点的Huffman树所具有的结点总数为____。

A m+1

B 2m-1

C 2m

D 2m+1

22.在一个无向图中,所有顶点的度数之和等于所有边数的____倍。

A 1/2

B 1

C 2

D 4

23.线性表采用链式存储时,其地址_____。

A 必须是连续的

B 必须是不连续的

C 连续与否均可

D 部分地址必须是连续的

24.在数据结构中,与所使用的计算机无关的是数据的____结构。

A 存储

B 物理

C 逻辑

D 物理与存储

25.向一个有115个元素的顺序表中插入一个新元素并保持原来顺序不变,平均要移动_____个元素。

A 115

B 114

C 58

D 57

26.任何一棵二叉树的叶结点在先序、中序和后序遍历的序列中的相对次序____。

A 不发生变化

B 发生变化

C 不能确定

D 以上都不对

27.将10个元素散列到100000个单元的散列表中,则__________产生冲突。

A 一定会

B 一定不会

C仍可能会

28.一组记录的排序码为(20,29,11,74,35,3,8,56),则利用堆排序方法建立的初始(小顶)堆为____。

A 20,29,11,74,35,3,8,56

B 3,29,8,56,35,20,11,74

C 3,8,11,20,29,35,56,74

D 20,29,3,8,11,35,74,56

29.对线性表进行二分查找时,要求线性表必须____。

A 以顺序方式存储

B 以顺序方式存储且元素有序

C 以链式方式存储

D 以链式方式存储且元素有序

30.若由森林转化得到的二叉树是非空的二叉树,则二叉树形状是____。

A 根结点无右子树的二叉树

B 根结点无左子树的二叉树

C 根节点可能有左子树和右子树的二叉树

D 各结点只有一个儿子的二叉树

31.设a,b为一棵二叉树上的两个结点,在中序遍历时,a在b前的条件是____。

A a是b祖先

B a是b子孙

C a在b左方

D a在b右方

32.采用不带尾指针的单链表方式表示一个栈,便于结点的插入与删除。栈顶结点的插入与删除通常在链表的_____进行。

A 任意位置

B 链表头尾两端

C链表头一端

D 链表尾一端

33.用某种排序方法对线性表(25,84,21,47,15,27,68,35,20)进行排序时,元素序列的变化情况如下(1)20,15,21,25,47,27,68,35,84 (2)15,20,21,25,35,27,47,68,84 (3)15,20,21,25,27,35,47,68,84 则所采用的排序方法是____ 。

A 选择排序

B 希尔排序

C 归并排序

D 快速排序

34.关于无向连通图的最小生成树的个数_____。

A 一定有多棵

B 一定只有一棵

C 有一棵或多棵

D 可能不存在

35.已知10个数据元素为(54,28,16,34,73,62,95,60,26,43),对该数列按从小到大排序,经过一趟冒泡排序后的序列为____。

A 16,28,34,54,73,62,60,26,43,95

B 28,16,34,54,62,73,60,26,43,95

C 28,16,34,54,62,60,73,26,43,95

D 16,28,34,54,62,60,73,26,43,95

36.在一个长度为n的顺序表中,在第i个元素(1<=i<=n)之前插入一个新元素时需向后移动_______个元素。

A 1

B n-i

C n-i-1

D n-i+1

37.若某堆栈的输入序列为1,2,3,…,n-1,n,输出序列的第1个元素为n,则第i个输出元素为______。

A n-i+l

B n-i

C i

D 哪个元素无所谓

38.在一个具有n个结点的有序单链表中,插入一个新的结点并使之仍然有序的时间复杂度是______。

A O(n)

B O(log2n)

C O(1)

D O(n^2)

39.数据结构课程主要研究以下三方面的内容,它们是______。

A 数据、数据元素、数据类型

B 数据元素、数据类型、算法实现

C 数据元素、数据的逻辑结构、数据的存储结构

D 数据的逻辑结构、数据的存储结构、数据的运算

40.在某棵二叉树的一种序列中,如果发现其中每一结点的左孩子均是其前趋,则可判断定这种序列为中序序列。

A正确

B 不正确

41.一个栈的入栈序列是a,b,c,d, 则下列序列中不可能的输出序列是_______。

A acbd

B dcba

C acdb

D dbac

42.已知某二叉树的后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是____。

A acbed

B decab

C deabc

D cedba

43.一个栈的进栈序列是a,b,c,d,e, 则栈的不可能的出栈序列是_____。

A edcba

B dceab

C decba

D abcde

44.栈结构通常采用的两种存储结构是_____。

A 线性存储结构和链表存储结构

B 散列方式和索引方式

C 链表存储结构和数组

D 线性存储结构和非线性存储结构

45.设有1000个无序的元素,希望用最快的速度挑选出其中前10个最大的元素,最好____排序法。

A 起泡排序

B 快速排序

C 堆排序

D 基数排序

46.若用二分查找法取得的中间位置元素键值大于被查找值,说明被查找值位于中间值的前面,下次的查找区间为从原开始位置至____。

A 该中间位置

B 该中间位置-1

C 该中间位置+1

D 该中间位置/2

47.在长度为n 的双链表中某结点(已知其地址)之前,插入一个新结点的时间复杂度是_____ 。

A O(n)

B O(log2n)

C O(1)

D O(n^2)

48.队列的操作原则是_____。

A 先进先出

B 先进后出

C 只能进行插入

D 只能进行删除

49.设二叉树根结点的层次为1,所有含有15个结点的二叉树中,最小高度是_____。

A 6

B 5

C 4

D 3

50.设深度为h的二叉树上只有度为0和度为2的结点,则此类二叉树中所包含的结点数至多为_____(注意C和D中h是指数)。

A 2h-1

B 2(h-1)

C 2*h-1

D 2*h

51.下列排序算法的时间复杂度最小的是____。

A 冒泡排序

B 希尔排序

C 简单选择排序

D 归并排序

52. 如果无向图G必须进行二次广度优先搜索才能访问其所有顶点,则下列说法中不正确的是_____。

A G肯定不是完全图

B G一定不是连通图

C G中一定有回路

D G有2个连通分量

53.带头结点的单链表Head为空表的判定条件是______。

A Head->next==Head

B H ead->next==NULL

C Head!=NULL

D Head==NULL

54.在顺序表{2、5、7、10、14、15、18、23、35、41、52}中,用二分法查找关键码12需做____次关键码比较。

A 2

B 3

C 4

D 5

55.顺序表的特点是______。

A 逻辑上相邻的结点其物理位置不相邻

B 逻辑上相邻的结点其物理位置亦相邻

C 顺序表不是随机存储结构

D 在顺序表中插入和删除操作比在链表上方便

56.设n个顶点e条边的图G 用邻接表存储,则求每个顶点入度的时间复杂度为____。

A O(n)

B O(n+e)

C O(n*n)

D O(n*e)

57.对于一个具有n个顶点和e 条边的无向图,若采用邻接表表示,邻接表中所有结点总数是_____。

A e/2

B 2e

C e

D n+e

58.某非空二叉树的前序序列和后序序列正好相反,则二叉树一定是_____的二叉树。

A空或只有一个结点

B 高度等于其结点数

C .任一结点无左孩子

D 任一结点无右孩子

59.在待排序的元素序列基本有序的前提下,效率最高的排序方法是____ 。

A 插入排序

B 快速排序

C 归并排序

D 选择排序

60.对顺序存储的线性表,设其长度为n,且在任何位置上插入或删除操作都是等概率的。则插入一个元素时平均要移动表中的_____个元素。

A n/2

B (n+1)/2

C (n-1)/2

D n

61.通过关键字比较的方法进行排序,其时间复杂性至少是O(nlog2n)。

正确错误

62.5个顶点的无向图,若不连通,则最多可能有6条边。

正确错误

63.由二叉树的前序和中序遍历序列可惟一构造这棵二叉树。

正确错误

64.任何一个森林都可以唯一地与一棵二叉树对应。

正确错误

65.无向图各顶点度之和就等于边的数量。

正确错误

66.图的深度优先遍历和广度优先遍历都包含了图的全部顶点。

正确错误

67.有向图各顶点入度之和就等于边的数量。

正确错误

68.在某个实例的排序结果看出,值相同的两个关键字排序前后领先关系不变,由此可知该排序方法是稳定的。

正确错误

69.序列{12, 23, 15, 24, 22, 18, 16, 30, 27}是一个堆。

正确错误

70.判断顺序储存下队列q是空的条件是q.front==q.rear。

正确错误

71.满二叉树一定是完全二叉树,反之不然。

正确错误

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

正确错误

73.树可以看成是连通的图。

正确错误

74.用邻接矩阵表示图所用的存储空间大小与图的边数成正比。

正确错误

75.判断顺序储存下堆栈s是空的条件是s.top==0。

正确错误

76.若散列表的装载因子α<1,则可避免冲突的产生。

正确错误

77.n(n>0)个结点的树有n-1条边。

正确错误

78.哈夫曼编码使一串文字的编码长度最短。

正确错误

79.逻辑结构相同时物理结构也应该相同。

正确错误

80.连通图的广度优先搜索中一般要采用队列来暂存刚访问过的顶点。

正确错误

81.二叉排序树一般用于查找某个元素。

正确错误

82.在n个元素的顺序表中删除第i个元素,需要移动n-i个元素。

正确错误

83.哈希表是用于查找的技术之一。

正确错误

84.任何二叉树的叶子数都要比度为2的结点数多。

正确错误

85.如果某二叉树的左右子树的高度差的绝对值不大于1,则一定是平衡二叉树。

正确错误

保存提交关闭

窗体底端

《数据结构与算法》课后习题答案

2.3 课后习题解答 2.3.2 判断题 1.线性表的逻辑顺序与存储顺序总是一致的。(×) 2.顺序存储的线性表可以按序号随机存取。(√) 3.顺序表的插入和删除操作不需要付出很大的时间代价,因为每次操作平均只有近一半的元素需要移动。(×) 4.线性表中的元素可以是各种各样的,但同一线性表中的数据元素具有相同的特性,因此属于同一数据对象。(√) 5.在线性表的顺序存储结构中,逻辑上相邻的两个元素在物理位置上并不一定相邻。(×) 6.在线性表的链式存储结构中,逻辑上相邻的元素在物理位置上不一定相邻。(√)7.线性表的链式存储结构优于顺序存储结构。(×) 8.在线性表的顺序存储结构中,插入和删除时移动元素的个数与该元素的位置有关。(√) 9.线性表的链式存储结构是用一组任意的存储单元来存储线性表中数据元素的。(√)10.在单链表中,要取得某个元素,只要知道该元素的指针即可,因此,单链表是随机存取的存储结构。(×) 11.静态链表既有顺序存储的优点,又有动态链表的优点。所以它存取表中第i个元素的时间与i无关。(×) 12.线性表的特点是每个元素都有一个前驱和一个后继。(×) 2.3.3 算法设计题 1.设线性表存放在向量A[arrsize]的前elenum个分量中,且递增有序。试写一算法,将x 插入到线性表的适当位置上,以保持线性表的有序性,并且分析算法的时间复杂度。【提示】直接用题目中所给定的数据结构(顺序存储的思想是用物理上的相邻表示逻辑上的相邻,不一定将向量和表示线性表长度的变量封装成一个结构体),因为是顺序存储,分配的存储空间是固定大小的,所以首先确定是否还有存储空间,若有,则根据原线性表中元素的有序性,来确定插入元素的插入位置,后面的元素为它让出位置,(也可以从高下标端开始一边比较,一边移位)然后插入x ,最后修改表示表长的变量。 int insert (datatype A[],int *elenum,datatype x) /*设elenum为表的最大下标*/ {if (*elenum==arrsize-1) return 0; /*表已满,无法插入*/ else {i=*elenum; while (i>=0 && A[i]>x) /*边找位置边移动*/ {A[i+1]=A[i]; i--; } A[i+1]=x; /*找到的位置是插入位的下一位*/ (*elenum)++; return 1; /*插入成功*/ } } 时间复杂度为O(n)。

数据结构(C 版)王红梅_版课后答案

第 1 章绪论 课后习题讲解 1. 填空 ⑴()是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。 【解答】数据元素 ⑵()是数据的最小单位,()是讨论数据结构时涉及的最小数据单位。 【解答】数据项,数据元素 【分析】数据结构指的是数据元素以及数据元素之间的关系。 ⑶从逻辑关系上讲,数据结构主要分为()、()、()和()。 【解答】集合,线性结构,树结构,图结构 ⑷数据的存储结构主要有()和()两种基本方法,不论哪种存储结构,都要存储两方面的内容:() 和()。 【解答】顺序存储结构,链接存储结构,数据元素,数据元素之间的关系 ⑸算法具有五个特性,分别是()、()、()、()、()。 【解答】有零个或多个输入,有一个或多个输出,有穷性,确定性,可行性 ⑹算法的描述方法通常有()、()、()和()四种,其中,()被称为算法语言。【解答】自然语言,程序设计语言,流程图,伪代码,伪代码 ⑺在一般情况下,一个算法的时间复杂度是()的函数。 【解答】问题规模 ⑻设待处理问题的规模为n,若一个算法的时间复杂度为一个常数,则表示成数量级的形式为(),若 为n*log25n,则表示成数量级的形式为()。 【解答】Ο(1),Ο(nlog2n) 【分析】用大O记号表示算法的时间复杂度,需要将低次幂去掉,将最高次幂的系数去掉。 2. 选择题 ⑴顺序存储结构中数据元素之间的逻辑关系是由()表示的,链接存储结构中的数据元素之间的逻辑关 系是由()表示的。 A 线性结构 B 非线性结构 C 存储位置 D 指针 【解答】C,D 【分析】顺序存储结构就是用一维数组存储数据结构中的数据元素,其逻辑关系由存储位置

数据结构 习题 第一章 绪论

第1章绪论 一、选择题 1. 算法的计算量的大小称为计算的()。 A.效率 B. 复杂性 C. 现实性 D. 难度 2. 算法的时间复杂度取决于() A.问题的规模 B. 待处理数据的初态 C. A和B 3.计算机算法指的是(1),它必须具备(2)这三个特性。 (1) A.计算方法 B. 排序方法 C. 解决问题的步骤序列 D. 调度方法 (2) A.可执行性、可移植性、可扩充性 B. 可执行性、确定性、有穷性 C. 确定性、有穷性、稳定性 D. 易读性、稳定性、安全性 4.一个算法应该是() A.程序 B.问题求解步骤的描述 C.要满足五个基本特性 D.A和C. 5. 下面关于算法说法错误的是() A.算法最终必须由计算机程序实现 B.为解决某问题的算法同为该问题编写的程序含义是相同的 C. 算法的可行性是指指令不能有二义性 D. 以上几个都是错误的 6. 下面说法错误的是()【南京理工大学 2000 一、2 (1.5分)】 (1)算法原地工作的含义是指不需要任何额外的辅助空间 (2)在相同的规模n下,复杂度O(n)的算法在时间上总是优于复杂度O(2n)的算法 (3)所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界 (4)同一个算法,实现语言的级别越高,执行效率就越低 A.(1) B.(1),(2) C.(1),(4) D.(3) 7.从逻辑上可以把数据结构分为()两大类。【武汉交通科技大学 1996 一、4(2分)】A.动态结构、静态结构 B.顺序结构、链式结构 C.线性结构、非线性结构 D.初等结构、构造型结构 8.以下与数据的存储结构无关的术语是()。【北方交通大学 2000 二、1(2分)】A.循环队列 B. 链表 C. 哈希表 D. 栈 9.以下数据结构中,哪一个是线性结构()?【北方交通大学 2001 一、1(2分)】A.广义表 B. 二叉树 C. 稀疏矩阵 D. 串 10.以下那一个术语与数据的存储结构无关?()【北方交通大学 2001 一、2(2分)】A.栈 B. 哈希表 C. 线索树 D. 双向链表 11.在下面的程序段中,对x的赋值语句的频度为()【北京工商大学 2001 一、10(3分)】 FOR i:=1 TO n DO FOR j:=1 TO n DO x:=x+1; A. O(2n) B.O(n) C.O(n2) D.O(log2n) 12.程序段 FOR i:=n-1 DOWNTO 1 DO FOR j:=1 TO i DO IF A[j]>A[j+1] THEN A[j]与A[j+1]对换; 其中 n为正整数,则最后一行的语句频度在最坏情况下是()

数据结构与算法习题及答案

第1章绪论 习题 1.简述下列概念:数据、数据元素、数据项、数据对象、数据结构、逻辑结构、存储结构、抽象数据类型。2.试举一个数据结构的例子,叙述其逻辑结构和存储结构两方面的含义和相互关系。 3.简述逻辑结构的四种基本关系并画出它们的关系图。 4.存储结构由哪两种基本的存储方法实现 5.选择题 (1)在数据结构中,从逻辑上可以把数据结构分成()。 A.动态结构和静态结构B.紧凑结构和非紧凑结构 C.线性结构和非线性结构D.内部结构和外部结构 (2)与数据元素本身的形式、内容、相对位置、个数无关的是数据的()。 A.存储结构B.存储实现 C.逻辑结构D.运算实现 (3)通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着()。 A.数据具有同一特点 B.不仅数据元素所包含的数据项的个数要相同,而且对应数据项的类型要一致 C.每个数据元素都一样 D.数据元素所包含的数据项的个数要相等 (4)以下说法正确的是()。 A.数据元素是数据的最小单位 B.数据项是数据的基本单位 C.数据结构是带有结构的各数据项的集合 D.一些表面上很不相同的数据可以有相同的逻辑结构 (5)以下与数据的存储结构无关的术语是()。 A.顺序队列B.链表C.有序表D.链栈 (6)以下数据结构中,()是非线性数据结构 A.树B.字符串C.队D.栈 6.试分析下面各程序段的时间复杂度。 (1)x=90;y=100; while(y>0) if(x>100) {x=x-10;y--;} elsex++; (2)for(i=0;i

数据结构与算法第1章参考答案

习题参考答案 一.选择题 1.从逻辑上可以把数据结构分为(C)两大类。 A.动态结构、静态结构 B.顺序结构、链式结构 C.线性结构、非线性结构 D.初等结构、构造型结构 2.在下面的程序段中,对x的斌值语句的频度为(C)。 for( t=1;k<=n;k++) for(j=1;j<=n; j++) x=x十1; A. O(2n) B. O (n) C. O (n2). D. O(1og2n) 3.采用链式存储结构表示数据时,相邻的数据元素的存储地址(C)。 A.一定连续B.一定不连续 C.不一定连续 D.部分连续,部分不连续 4.下面关于算法说法正确的是(D)。 A.算法的时间复杂度一般与算法的空间复杂度成正比 B.解决某问题的算法可能有多种,但肯定采用相同的数据结构 C.算法的可行性是指算法的指令不能有二义性 D.同一个算法,实现语言的级别越高,执行效率就越低 5.在发生非法操作时,算法能够作出适当处理的特性称为(B)。 A.正确性 B.健壮性 C.可读性 D.可移植性 二、判断题 1.数据的逻辑结构是指数据的各数据项之间的逻辑关系。(√) 2.顺序存储方式的优点是存储密度大,且插人、删除运算效率高。(×) 3.数据的逻辑结构说明数据元素之间的次序关系,它依赖于数据的存储结构。(×) 4.算法的优劣与描述算法的语言无关,但与所用计算机的性能有关。(×) 5.算法必须有输出,但可以没有输人。(√) 三、筒答题 1.常见的逻辑结构有哪几种,各自的特点是什么?常用的存储结构有哪几种,各自的特点是什么? 【答】常见的四种逻辑结构: ①集合结构:数据元素之间是“属于同一个集合” ②线性结构:数据元素之间存在着一对一的关系 ③树结构:数据元素之间存在着一对多的关系 ④结构:数据元素之间存在着多对多的关系。 常见的四种存储结构有: ①顺序存储:把逻辑上相邻的元素存储在物理位置相邻的存储单元中。顺序存储结构是一种最基本的存储表示方法,通常借助于程序设计语言中的数组来实现。 ②链接存储:对逻辑上相邻的元素不要求物理位置相邻的存储单元,元素间的逻辑关系通过附设的指针域来表示。 ③索引存储:通过建立索引表存储结点信息的方法,其中索引表一般存储结点关键字和一个地点信息,可通过该地址找到结点的其他信息。 ④散列存储:根据结点的关键字直接计算出该结点的存储地址的方法。 2.简述算法和程序的区别。 【解答】一个算法若用程序设计语言来描述,则它就是一个程序。算法的含义与程序十分相

数据结构与算法第二版2-4章答案

2.3 课后习题解答 选择题 1、A 2、A 3、D 4、C 5、D 6、B 7、C 8、B 9、A 10、D 11、B 12、D 2.3.2 判断题 1.线性表的逻辑顺序与存储顺序总是一致的。(×) 2.顺序存储的线性表可以按序号随机存取。(√) 3.顺序表的插入和删除操作不需要付出很大的时间代价,因为每次操作平均只有近一半的元素需要移动。(×) 4.线性表中的元素可以是各种各样的,但同一线性表中的数据元素具有相同的特性,因此属于同一数据对象。(√) 5.在线性表的顺序存储结构中,逻辑上相邻的两个元素在物理位置上并不一定相邻。(×) 6.在线性表的链式存储结构中,逻辑上相邻的元素在物理位置上不一定相邻。(√)7.线性表的链式存储结构优于顺序存储结构。(×) 8.在线性表的顺序存储结构中,插入和删除时移动元素的个数与该元素的位置有关。(√) 9.线性表的链式存储结构是用一组任意的存储单元来存储线性表中数据元素的。(√)10.在单链表中,要取得某个元素,只要知道该元素的指针即可,因此,单链表是随机存取的存储结构。(×) 11.静态链表既有顺序存储的优点,又有动态链表的优点。所以它存取表中第i个元素的时间与i无关。(×) 12.线性表的特点是每个元素都有一个前驱和一个后继。(×) 2.3.3 算法设计题 1.设线性表存放在向量A[arrsize]的前elenum个分量中,且递增有序。试写一算法,将x 插入到线性表的适当位置上,以保持线性表的有序性,并且分析算法的时间复杂度。【提示】直接用题目中所给定的数据结构(顺序存储的思想是用物理上的相邻表示逻辑上的相邻,不一定将向量和表示线性表长度的变量封装成一个结构体),因为是顺序存储,分配的存储空间是固定大小的,所以首先确定是否还有存储空间,若有,则根据原线性表中元素的有序性,来确定插入元素的插入位置,后面的元素为它让出位置,(也可以从高下标端开始一边比较,一边移位)然后插入x ,最后修改表示表长的变量。 int insert (datatype A[],int *elenum,datatype x) /*设elenum为表的最大下标*/ {if (*elenum==arrsize-1) return 0; /*表已满,无法插入*/ else {i=*elenum; while (i>=0 && A[i]>x) /*边找位置边移动*/ {A[i+1]=A[i]; i--; } A[i+1]=x; /*找到的位置是插入位的下一位*/ (*elenum)++; return 1; /*插入成功*/ }

数据结构与算法分析 C++版答案

Data Structures and Algorithm 习题答案 Preface ii 1 Data Structures and Algorithms 1 2 Mathematical Preliminaries 5 3 Algorithm Analysis 17 4 Lists, Stacks, and Queues 23 5 Binary Trees 32 6 General Trees 40 7 Internal Sorting 46 8 File Processing and External Sorting 54 9Searching 58 10 Indexing 64 11 Graphs 69 12 Lists and Arrays Revisited 76 13 Advanced Tree Structures 82 i

ii Contents 14 Analysis Techniques 88 15 Limits to Computation 94

Preface Contained herein are the solutions to all exercises from the textbook A Practical Introduction to Data Structures and Algorithm Analysis, 2nd edition. For most of the problems requiring an algorithm I have given actual code. In a few cases I have presented pseudocode. Please be aware that the code presented in this manual has not actually been compiled and tested. While I believe the algorithms to be essentially correct, there may be errors in syntax as well as semantics. Most importantly, these solutions provide a guide to the instructor as to the intended answer, rather than usable programs.

《数据结构与算法 Python精品课程》第二章:算法分析

?.算法分析 2.1.?标 ·了解为何算法分析的重要性 ·能够??“O ”表?法来描述算法执?时间 ·了解在Python 列表和字典类型中通?操作??“O ”表?法表?的执?时间 ·了解Python 数据类型的具体实现对算法分析的影响 ·了解如何对简单的Python 程序进?执?时间检测 2.2.什么是算法分析 计算机初学者经常将??的程序与他?的?较。你也可能注意到了电脑程序常常看起来很相似,尤其是那些简单的程序。?个有趣的问题出现了,当两个看起来不同的程序解决相同的问题时,?个程序会优于另?个吗? 为了回答这个问题,我们需要记住的是,程序和它所代表的基本算法有着重要差别。在第?章中我们说到,算法是问题解决的通?的分步的指令的聚合。这是?种能解决任何问题实例的?法,?如给定?个特定的输?,算法能产?期望的结果。从另???看,?个程序是?某种编程语?编码后的算法。同?算法通过不同的程序员采?不同的编程语?能产?很多程序。 为进?步探究这种差异,请阅读接下来展?的函数。这个函数解决了?个我们熟知的问题,计算前n 个整数的和。其中的算法使?了?个初始值为0的累加变量的概念。解决?案是遍历这n 个整数,逐个累加到累加变量。 代码2.1前n 个正整数求和(active1 )

现在看下?的foo函数。可能第?眼看上去?较奇怪,但是进?步观察你会发现,这个函数所实现的功能与之前代码2.1中的函数基本相同。看不太懂的原因是糟糕的编码。我们没有使?好的变量命名来增加可读性,并且在累加过程中使?了多余的赋值语句。 回到前?我们提出的问题:是否?个程序会优于另?个?答案取决于你??的标准。如果你关?可读性,那么sum_of_n函数肯定?foo函数更好。实际上,在你的编程?门课程上你可能见过很多这样的例?,因为这些课程的?标之?就是帮助你编写更具可读性的程 代码2.2 另?种前n个正整数求和(ac ve2) def foo(tom): fred=0 for bill in range(1,tom+1): barney = bill fred = fred + barney return fred print (foo(10)) 序。然?,在这门课程中,我们主要感兴趣的是算法本?的特性。(我们当然希望你可以继续努?写出更具可读性的代码。) 算法分析主要就是从计算资源的消耗的?度来评判和?较算法。我们想要分析两种算法并且指出哪种更好,主要考虑的是哪?种可以更?效地利?计算资源。或者占?更少的资源。从这个?度,上述两个函数实际上是基本相同的,它们都采?了?样的算法来解决累加求和问题。

全国计算机二级考试 数据结构与算法

全国计算机二级考试 第一章数据结构与算法 1.一个算法一般都可以用_____、_____ 、 _____三种控制结构组合完成。 [解析]顺序、选择(分支)、循环(重复) 一个算法通常由两种基本要素组成:一是对数据对象的运算和操作,二是________。 [解析]算法的控制结构 在一般的计算机系统中,有算术运算、逻辑运算、关系运算和________四类基本的操作和运算。 [解析]数据传输 2.常用于解决“是否存在”或“有多少种可能”等类型的问题(例如求解不定方程的问题)的算法涉及基本方法是() A.列举法 B.归纳法 C.递归法 D.减半递推法 [解析]列举就是列举出所有可能性,将所有可能性统统列举出来,然后解决问题的方法。所以A 3.根据提出的问题,列举所有可能的情况,并用问题中给定的条件检验哪些是需要的,哪些是不需要的,这是算法设计基本方法中的____。 [解析]列举法

4.通过列举少量的特殊情况,经过分析,最后找出一般的关系的算法设计思想是() A.列举法 B.归纳法 C.递归法 D.减半递推法 [解析]B 5.在用二分法求解方程在一个闭区间的实根时,采用的算法设计技术是() A.列举法 B.归纳法 C.递归法 D.减半递推法 [解析]二分法就是从一半处比较,减半递推技术也称分治法,将问题减半。所以D 6.将一个复杂的问题归结为若干个简单的问题,然后将这些较简单的问题再归结为更简单的问题,这个过程可以一直做下去,直到最简单的问题为止,这是算法设计基本方法中的___。如果一个算法P显式地调用自己则称为___。如果算法P调用另一个算法Q,而算法Q又调用算法P,则称为_____. [解析]递归法直接递归间接递归调用 7.算法中各操作之间的执行顺序称为_____。描述算法的工具通常有_____、_____ 、 _____。 [解析]控制结构传统流程图、N-S结构化流程图、算法描述语言 8.从已知的初始条件出发,逐步推出所要求的各中间结果和最后结果,这

大数据结构与算法设计知识点

数据结构与算法设计知识点 试题类型: 本课程为考试科目(闭卷笔试),试题类型包括:概念填空题(10 %),是非判断题(10 %),单项选择题(40 %),算法填空题(10%),算法应用题(20 %),算法设计题(10 %)。 第一章绪论 重点容及要求: 1、了解与数据结构相关的概念(集合、数据、数据元素、数据项、关键字、元 素之间的关系等)。 数据:所有能被输入到计算机中,且能被计算机处理的符号的 集合。是计算机操作的对象的总称。是计算机处理的信息的某种特定 的符号表示形式。 数据元素:是数据(集合)中的一个“个体”,数据结构中的基 本单位,在计算机程序常作为一个整体来考虑和处理。 数据项:是数据结构中讨论的最小单位,数据元素可以是一个或 多个数据项的组合 关键码:也叫关键字(Key),是数据元素中能起标识作用的数据 项。 其中能起到唯一标识作用的关键码称为主关键码(简称主码); 否则称为次关键码。通常,一个数据元素只有一个主码,但可以有多 个次码。 关系:指一个数据集合中数据元素之间的某种相关性。 数据结构:带“结构”的数据元素的集合。这里的结构指元素之 间存在的关系。 数据类型:是一个值的集合和定义在此集合上的一组操作的总

称。 2、掌握数据结构的基本概念、数据的逻辑结构(四种)和物理结构(数据元素 的表示与关系的表示、两类存储结构:顺序存储结构和链式存储结构)。 数据结构包括逻辑结构和物理结构两个层次。 数据的逻辑结构:是对数据元素之间存在的逻辑关系的一种抽象的描述,可以用一个数据元素的集合和定义在此集合上的若干关系来表示 逻辑结构有四种:线性结构、树形结构、图状结构、集合结构数据的物理结构:是其逻辑结构在计算机中的表示或实现,因此又称其为存储结构。 存储结构:顺序存储结构和链式存储结构 顺序存储结构:利用数据元素在存储器中相对位置之间的某种特定的关系来表示数据元素之间的逻辑关系; 链式存储结构:除数据元素本身外,采用附加的“指针”表示数据元素之间的逻辑关系。 3、了解算法分析的基本方法,掌握算法时间复杂度相关的概念。 算法:是为了解决某类问题而规定的一个有限长的操作序列 或处理问题的策略 一个算法必须满足以下五个重要特性:1.有穷性2.确定性3.可行性4.有输入 5.有输出 设计算法时,通常还应考虑满足以下目标: 1.正确性, 2.可读性, 3.健壮性 4.高效率与低存储量需求

《数据结构与算法(徐凤生)》习题答案

《数据结构与算法》 习题答案

目录 第1章—————————————————— 2 第2章——————————————————7 第3章——————————————————13 第4章——————————————————21 第5章——————————————————26 第6章——————————————————32 第7章——————————————————42 第8章——————————————————54 第9章——————————————————60 第10章——————————————————64

习题1 1.解释下列术语:数据、数据元素、数据对象、数据结构。 解:数据是用于描述客观事物的数值、字符以及一切可以输入到计算机中并由计算机程序加以处理的符号的集合,是计算机操作的对象的总称。 数据元素是数据的基本单位,它是数据中的一个“个体”。有时,一个数据元素可有若干数据项组成,。数据项是数据的不可分割的最小单位。 数据对象是具有相同性质的数据元素的集合,是数据的一个子集。 数据结构是指相互之间存在一种或多种关系的特性相同的数据元素的集合。 2.数据类型和抽象数据类型是如何定义的?两者有何异同?抽象数据类型的主要特点是什么?使用 抽象数据类型的主要好处是什么? 解:数据类型是一个值的集合和定义在此集合上的一组操作的总称。例如,C语言中的整型变量,其值为某个区间上的整数(依赖于机器),定义在其上的操作为加、减、乘、除和取模等算术运算。 抽象数据类型(Abstract Data Type,简称ADT)是指一个数学模型以及定义在此数学模型上的一组操作。例如,“整数”是一个抽象数据类型,其数学特性和具体的计算机或语言无关。“抽象”的意义在于强调数据类型的数学特性。 抽象数据类型和数据类型实质上是一个概念,只是抽象数据类型的范围更广,除了已有的数据类型外,抽象数据类型还包括用户在设计软件系统时自己定义的数据类型。ADT的定义取决于它的一组逻辑特性,与其在计算机内的表示和实现无关。因此,不论ADT的内部结构如何变化,只要其数学特性不变,都不影响其外部的使用。 抽象数据类型的最重要的特点是抽象和信息隐蔽。抽象的本质是抽取反映问题本质的东西,忽略非本质的细节,从而使所设计的数据结构更具有一般性,可以解决一类问题。信息隐蔽就是对用户隐蔽数据存储和操作实现的细节,使用者仅需了解抽象操作,或界面服务,通过界面中的服务来访问这些数据。 一个含抽象数据类型的软件模块通常应包含定义、表示和实现三部分。 3.数据元素之间的关系在计算机中有几种表示方法?各有什么特点? 解:数据元素之间的关系在计算机中有四种不同的表示方法: (1)顺序存储方法。数据元素顺序存放,每个结点只含有一个元素。存储位置反映数据元素间的逻辑关系。存储密度大,但有些操作(如插入、删除)效率较差。 (2)链式存储方法。每个结点除包含数据元素信息外还包含一组指针。指针反映数据元素间的逻辑关系。这种操作不要求存储空间连续,便于进行插入和删除等操作,但存储空间利用率较低。另外,由于逻辑上相邻的数据元素在存储空间上不一定相邻,所以不能对其进行随机存取。 (3)索引存储方法。除数据元素存储在一地址连续的内存空间外,尚需建立一个索引表。索引表中的索引指示结点的存储位置,兼有动态和静态特性。 (4)哈希(或散列)存储方法。通过哈希函数和解决冲突的方法,将关键字散列在连续的有限的地址空间内,并将哈希函数的值作为该数据元素的存储地址。其特点是存取速度快,只能按关键字随机存取,不

数据结构与算法习题库(考前必备)

第一章绪论 一.选择题 1.数据结构被形式地定义为(K,R),其中K是①_B_的有限集合,R是K上的②_D_的有限集合。 ①A.算法B.数据元素C.数据操作D.逻辑结构 ②A.操作B.映象C.存储D.关系 2.算法分析的目的是①C,算法分析的两个主要方面是②A。 ①A.找出数据结构的合理性 B.研究算法中的输入和输出的关系 C.分析算法的效率以求改进 D.分析算法的易懂性和文档性 ②A.空间复杂性和时间复杂性 B.正确性和简明性 C.可读性和文档性 D.数据复杂性和程序复杂性 3.在计算机存储器内表示时,物理地址和逻辑地址相同并且是连续的,称之为(B) A.逻辑结构B.顺序存储结构 C.链表存储结构D.以上都不对 4.数据结构中,在逻辑上可以把数据结构分成:( C )。 A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部结构5.以下属于顺序存储结构优点的是(A )。 A.存储密度大B.插入运算方便 C.删除运算方便D.可方便地用于各种逻辑结构的存储表示 6.数据结构研究的内容是(D )。 A.数据的逻辑结构B.数据的存储结构 C.建立在相应逻辑结构和存储结构上的算法D.包括以上三个方面

7.链式存储的存储结构所占存储空间(A )。 A.分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针 B.只有一部分,存放结点值 C.只有一部分,存储表示结点间关系的指针 D.分两部分,一部分存放结点值,另一部分存放结点所占单元数 8.一个正确的算法应该具有5 个特性,除输入、输出特性外,另外3 个特性是(A )。 A.确定性、可行性、有穷性B.易读性、确定性、有效性C.有穷性、稳定性、确定性D.可行性、易读性、有穷性9.以下关于数据的逻辑结构的叙述中正确的是(A)。 A.数据的逻辑结构是数据间关系的描述 B.数据的逻辑结构反映了数据在计算机中的存储方式 C.数据的逻辑结构分为顺序结构和链式结构 D.数据的逻辑结构分为静态结构和动态结构 10.算法分析的主要任务是(C )。 A.探讨算法的正确性和可读性B.探讨数据组织方式的合理性C.为给定问题寻找一种性能良好的解决方案D.研究数据之间的逻辑关系 二.解答 设有一数据的逻辑结构为:B=(D, S),其中: D={d1, d2, …, d9} S={, , , , , , , , , , }画出这个逻辑结构示意图。

《数据结构与算法》廖明宏课后答案

数据结构与算法》廖明宏课后答案 第一次作业(第 2 章) 4.List Combine(List &L1,List &L2) { LNode *ap1,*ap2,*p; ap1=L1->next; ap2=L2->next; if(ap1->elementelement) while(ap1-next!=NULL) ap1=ap1->next; ap1=L2; return L1; else while(ap2->next!=NULL) ap2=ap2->next; ap2=L1; return L2; 8.XSXXXSSSXXSXXSXXSSSS 15. 节点只有一个链域的环形链表只能是一个单向环形链表,但为了能逆时针方向查找,可

以在链表的每个节点中增加一个代表链表元素总数的整型num该环形链表的每个节点可说 明为: struct celltype{ Elementtype element; celltype *next; int num; }List; 顺时针方向查找就按照普通单向链表的查找; 逆时针方向查找不是直接一步就 达到,逆时针 查找当前节点的下一个节点可以通过顺时针转一圈来达到,代表元素总数的整 型num就决 定了p=p->next(p 为当前节点)所需循环的次数,最终达到逆时针查找的目的。顺时针访问表的每个节点的算法为: void TravelList(List la) List p=la->next; int i=0; while(inum) i++; p=p->next; } }

18.void R(List la,elementtype x) LNode* p=la->next; LNode* q=la->next; int n=1; while(p-next!=NULL && p->data!=x) p=p->next; n++; if(p==NULL) LNode *s; int j=0; while(q && jnext; j++; s->element=x; s->next=q->next; q->next=s; cout<<" 已将x 插在表尾。" }else{

智慧树知道网课《数据结构与算法》课后章节测试满分答案

绪论单元测试 1 【判断题】(2分) 数据结构主要研究内存中数据组织和数据处理方法。 A. 错 B. 对 正确 本题总得分2分 2 【多选题】(2分) 数据结构与算法课程的学习目标是()。 A. 理解并掌握典型数据结构及七本运算的实现算法。 B. 提高计算思维能力 C. 能利用所学数据结构和算法知识解决实际问题。 D. 具备基本的算法设计与分析能力。 3 【多选题】(2分) 数据结构课程的学习重点是()

A. 掌握各种数据结构的逻辑特性 B. 掌握基本的算法分析方法。 C. 掌握各种数据结构的存储结构的设计与实现。 D. 掌握基本的算法设计方法 第一章测试 1 【多选题】(3分) 算法分析主要分析的是算法的() A. 空间复杂性 B. 时间复杂性 C. 正确性 D. 可读性 2 【判断题】(2分)

数据结构是数据对象与对象中数据元素之间关系的集合。 A. 错 B. 对 3 【判断题】(2分) 数据元素是数据的最小单位。 A. 错 B. 对 4 【判断题】(2分) 数据的逻辑结构是指各数据元素之间的逻辑关系,是用户按使用需要而建立的。 A. 对 B. 错

5 【判断题】(3分) 算法和程序没有区别,所以在数据结构中二者是通用的。 A. 错 B. 对 6 【单选题】(3分) 数据结构中,与所使用的计算机无关的是数据的()结构 A. 存储 B. 物理与存储 C. 逻辑 D. 物理 7 【单选题】(3分) 算法分析的目的是() A. 找出数据结构的合理性

B. 研究算法中的输入和输出的关系 C. 分析算法的效率以求改进 D. 分析算法的易懂性和文档性 8 【单选题】(3分) 设x,y,n为正整数,下列程序片段的渐进时间复杂度是()x=1;y=1; while(x+y<=n){ if(x>y)y++; elsex++;} A. O(n2) B. O(log2n) C. O(n) D. O((2/3)n) 9 【多选题】(3分) 在数据结构中,从逻辑上可以把数据结构分成()

数据结构与算法习题:选择题、判断题

1. 从逻辑上可以把数据结构分为( C )两大类。 A.动态结构、静态结构 B.顺序结构、链式结构 C.线性结构、非线性结构 D.初等结构、构造型结构 2. 在下面的程序段中,对x的赋值语句的频度为( C )。 For(k=1;k<=n;k++) For(j=1;j<=n;j++) x=x+1; n) A.O(2n) B.O(n) C.O(n2) D.O(log 2 3. 采用顺序存储结构表示数据时,相邻的数据元素的存储地址( A )。 A.一定连续 B.一定不连续 C.不一定连续 D.部分连续、部分不连续 4. 下面关于算法的说法,正确的是( D )。 A.算法的时间复杂度一般与算法的空间复杂度成正比 B.解决某问题的算法可能有多种,但肯定采用相同的数据结构 C.算法的可行性是指算法的指令不能有二义性 D.同一个算法,实现语言的级别越高,执行效率就越低 5. 在发生非法操作时,算法能够作出适当处理的特性称为( B )。 A.正确性 B.健壮性 C.可读性 D.可移植性 第二章线性表 1. 线性表是( A )。 A.一个有限序列,可以为空 B.一个有限序列,不能为空 C.一个无限序列,可以为空 D.一个无限序列,不能为空 2.对顺序存储的线性表,设其长度为n,在任何位置上插入或删除操作都是等概率的。插入一个元素时平均要移动表中的( A )个元素。 A.n/2 B.(n+1)/2 C.(n-1)/2 D.n 3.线性表采用链式存储时,其地址( D )。 A.必须是连续的 B.部分地址必须是连续的 C.一定是不连续的 D.连续与否均可以 4.用链表表示线性表的优点是( C )。 A.便于随机存取 B.花费的存储空间较顺序存储少 C.便于插入和删除 D.数据元素的物理顺序与逻辑顺序相同 5.链表中最常用的操作是在最后一个元素之后插入一个元素和删除最后一个元素,则采用( C )存储方式最节省运算时间。 A.单链表 B.双链表 C.单循环链表 D.带头结点的双向循环链表6.下面关于线性表的叙述,错误的是( B )。

数据结构习题汇编01 第一章 绪论 试题

《数据结构与算法设计》习题册 第一章绪论 一、单项选择题 1.数据结构是一门研究非数值计算的程序设计问题中计算机的①以及它们之间的②和运 算等的学科。 ①A. 数据元素 B. 计算方法 C. 逻辑存储 D. 数据映象 ②A. 结构 B. 关系 C. 运算 D. 算法 2.数据结构被形式地定义为(K,R),其中K是①的有限集,R是K上的②有限集。 ①A. 算法 B. 数据元素 C. 逻辑结构 D. 数据操作 ②A. 操作 B. 存储 C. 映象 D. 关系 3.在数据结构中,从逻辑上可以把数据结构分成。 A. 动态结构和静态结构 B. 紧凑结构和非紧凑结构 C. 线性结构和非线性结构 D. 内部结构和外部结构 4.数据结构在计算机内存中的表示是指。 A. 数据的存储结构 B. 数据结构 C. 数据的逻辑结构 D. 数据元素之间的关系 5.在数据结构中,与所使用的计算机无关的是数据的结构。 A. 逻辑 B. 存储 C. 逻辑和存储 D. 物理 6.算法分析的目的是①,算法分析的两个主要方面是②。 ①A. 找出数据结构的合理性 B. 研究算法中的输入和输出的关系 C. 分析算法的效率以求改进 D. 分析算法的易懂性和文档性 ②A. 空间复杂度和时间复杂度 B. 正确性和简明性 C. 可读性和文档性 D. 数据复杂性和程序复杂性 7.计算机算法指的是①,它必须具备输入、输出和②等5个特性。 ①A. 计算方法 B. 排序方法 C. 解决问题的有限运算序列 D. 调度方法 ②A. 可行性、可移植性和可扩充性 B. 可行性、确定性和有穷性 C. 确定性、有穷性和稳定性 D. 易读性、稳定性和安全性 8.在以下叙述中,正确的是。 A. 线性表的线性存储结构优于链表存储结构 B. 二维数组是其数据元素为线性表的线性表 C. 栈的操作方式是先进先出 D. 队列的操作方式是先进后出 9.在决定选取何种存储结构时,一般不考虑。 A. 各结点的值如何 B. 结点个数的多少 C. 对数据有哪些运算 D. 所用编程语言实现这种结构是否方便 10.在存储数据时,通常不仅要存储各数据元素的值,而且还要存储。

数据结构与算法期末复习题

《数据结构与算法》2015-2016学年第1 学期考试复习题 一、 选择题(下面各小题有一个正确答案,请将正确答案的编号填写在各小题的括号内)。 1、在一棵具有5层的满二叉树中结点总数为( A )。 A) 31 B )32 C )33 D )16 2、串的逻辑结构与( D )的逻辑结构不相同。 A )线性表 B )栈 C )队列 D )集合 3、下列序列中,执行第一趟快速排序后得到的序列是( )。 A )[d,a,e,d,b]f[h,g] B) [c,e,a,d]f[h,g,b] C) [g,a,e,c,b]f[d,h] D) [a,b,c,d,]f[e,g,h] 4、n 个顶点的强连通图至少有( D )条边。 A )n B )n+1 C )n-1 D )n(n-1) 5、数据结构中,在逻辑上可以把数据结构分成( B )。 A )动态结构和静态结构 B )线性结构和非线性结构 C )紧凑结构和非紧凑结构 D )内部结构和外部结构 6、链式存储的存储结构所占存储空间( A )。 A )分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针 B )只有一部分,存放结点值 C )只有一部分,存储表示结点间关系的指针 D )分两部分,一部分存放结点值,另一部分存放结点所占单元数 7、有一个有序表{1,4,6,10,18,35,42,53,67,71,78,84,92,99}。当用二分查找法查找键值为84的结点时,经( A )比较后查找成功。 A) 4 B)3 C)2 D)12 8、设单链表中指针p 指向结点m ,若要删除m 之后的结点(若存在),则需修改指针的操作为( A )。 A )p->next=p->next->next; B ) p=p->next; C )p=p->next->next; D ) p->next=p; 9、n 个顶点,e 条边的有向图的邻接矩阵中非零元素有( C )个。 A )n B )2e C )e D ) n+e 10、对下图V4的度为( C )。 A )1 B )2 C )3 D )4 11、在一棵度为3的树中,度为3的结点个数为2,度为2的结点个数为1,则度为0的结点个数为( A )。 A )4 B )5 C )6 D )7 12、在数据结构中,从逻辑上可以把数据结构分为( C )。 A )动态结构和静态结构 B )紧凑结构和非紧凑结构 C )线性结构和非线性结构 D )内部结构和外部结构 13、用一维数组A 进行顺序存储时,若起始地址为loc(A1),元素长度为c ,则A 的第i 个数组单元在存放地址loc(Ai),等于( B )。 A )loc(A1)+i*c B )loc(A1)+(i-1)*c C )loc(A1)+i*c+1 D )loc(A1)+(i+1)*c 14、( C )在进行插入操作时,常产生假溢出现象。 A )顺序栈 B )循环队列 C )顺序队列 D )链队列 15、某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用( D )存储方式最节省运算时间。 A) 单链表 B) 仅有头指针的单循环链表 C) 双链表 D) 仅有尾指针的单循环链表 16、向一个栈顶指针为hs 的链栈中插入一个s 结点时,应执行( C )。 A) hs->next=s; B) s->next=hs->next; hs->next=s; C) s->next=hs; hs=s; D) s->next=hs; hs=hs->next; 17、在一个链队列中,假定front 和rear 分别为队首和队尾指针,则删除一个结点的操作为( B )。 A) rear=rear->next; B) front=front->next; C) rear=front->next; D) front=rear->next ; 18、已知栈的最大容量为4。若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,则可能出现的出栈序列为( C )。 A) 5,4,3,2,1,6 B) 2,3,5,6,1,4 C) 3,2,5,4,1,6 D) 1,4,6,5,2,3 19、已知广义表L=((x,y,z),a,(u,t,w)),从L 表中取出原子项t 的操作是( D )。 A) Head(Head(Tail(Tail(L)))) B) Tail(Head(Head(Tail(L)))) C) Head(Tail(Head(Tail(L))))

相关文档
最新文档