数据结构-问题求解题

《数据结构》习题库之四:问题求解题

1. 用序列(46,88,45,39,70,58,101,10,66,34)建立一个排序二叉树,画出该树,并求在等概率情况下查找成功的平均查找长度。

2. 给出一组关键字:29,18,25,47,58,12,51,10,分别写出按归并排序方法进行排序时的变化过程,每归并一次书写一个次序。

3. 给出一组关键字:29,18,25,47,58,12,51,10,分别写出按快速排序方法进行排序时的变化过程,每划分一次书写一个次序。

4. 给出一组关键字:29,18,25,47,58,12,51,10,分别写出按堆排序方法进行排序时的变化过程,先建成一个堆,然后每从堆顶取下一个元素后,将堆调整一次。

5. 已知树T的先序遍历序列为ABCDEFGHJKL,后序遍历序列为CBEFDJIKLHGA。请画出树T。

6. 对关键字序列(72,87,61,23,94,16,05,58)进行堆排序,使之按关键字递减次序排列。请写出排序过程中得到的初始堆和前三趟的序列状态。

初始堆:________________________________

第1趟:________________________________

第2趟:________________________________

第3趟:________________________________

7. 在关键字序列(07,12,15,18,27,32,41,92)中用二分查找法查找和给定值92相等的关键字,请写出查找过程中依次和给定值“92”比较的关键字。

8. 若对序列(76,38,65,13,97,27,50,49)采用堆积排序法(按照值的大小从小到大)进行排序,请分别在下表中写出每一趟的结果:

原始序列 76 38 65 13 97 27 50 49

第1趟结果

第2趟结果

第3趟结果

第4趟结果

9. 已知一带权连通图采用邻接矩阵存储方法,并且邻接矩阵采用三元组表表示,其中,第一个三元组 (5,5,16)分别表示邻接矩阵的行数、列数字与非零元素的个数,从第二个三元组开始,依次按行序为主序的次序分别给出16个非零元素,它们依次为(1,2,7),(1,3,6),(1,4,9),(2,1,7),(2,3,8),(2,4,4),(2,5,4),(3,1,6),(3,2,8),(3,4,6),(4,1,9),(4,2,4),(4,3,6),(4,5,2),(5,2,4),(5,4,2);请分别画出该带权连通图的两棵最小生成树。

10. 已知散列范围为[0:9],散列函数为H(key)=key MOD 9,处理冲突的方法为链地址法,请画出依次插入关键字8,10,14,19,21,23,28,32以后的哈希表。

11. 已知某非空二叉排序树采用顺序存储结构依次将所有结点的数据信息存放于一维数组

ABDIC□EF□□C□□□H

请分别写出该二叉树的前序遍历序列与中序遍历序列。

12. 折半查找过程可以利用一棵称之为“判定树”的二叉树来描述,请画出在长度为13的表中进行折半查找对应的判定树。

13. 设二叉树后根遍历的结果为BCA,画出所有可得到这一结果的二叉树。

14. 已某个不带权的无向图采用邻接矩阵存储方法依次将顶点的数据信息存放于一维数组ABCDEFGH 中,边的信息存放于邻接矩阵中,邻接矩阵为

0 1 1 0 0 0 0 0

1 0 0 0 1 0 1 1

1 0 0 1 0 1 0 0

0 0 1 0 0 1 0 0

0 1 0 0 0 0 0 1

0 0 1 1 0 0 0 0

0 1 0 0 0 0 0 0

0 1 0 0 1 0 0 0

请写出从顶点A出发对该图进行深度优先搜索后得到的顶点序列。

15. 若对序列(49,38,27,13,97,76,50,65)采用泡排序法(按照值的大小从小到大)进行排序,请分别在下表中写出每一趟排序的结果。

原始序列 49 38 27 13 97 76 50 65

第1趟的结果

第2趟的结果

第3趟的结果

第4趟的结果

16. 已知一稀疏矩阵的三元组存储如下所示,请画出其十字链表表示。

6 7 8

1 4 6

2 3 5

2 6 2

4 2 7

5 1 2

5 5 1

5 6 4

6 1 8

17. 若杂凑表的地址范围为[0:9],杂凑函数为H(key)=(key2+2)MOD 9,并且采用链地址方法处理冲突,请画出元素7,4,5,3,6,2,8,9,1依次插入该杂凑表以后,该杂凑表的状态。

18. 若一棵树有n1个度为1的结点,n2个度为2的结点,…,nm个度为m的结点,求该树中叶结点的个数。(要求写出推导过程)

19. 已知某二叉树的中序遍历序列为CBGEAFHD,后序遍历序列为CGEBHFDA,请画出该二叉树的前序线索二叉树的二叉链表表示。

20. 现有一组单词(WEK,SUN,MON,TUE,WED,THU,FRI,SAT),其相应的散列函数值为(3,2,6,3,2,5,6,0),散列表长度为10(散列地址空间为0..9),要求:

(1)构造该闭散列表,并用线性探测法解决冲突;

(2)若对每个元素查找一次,求总的比较次数。

21. 设要将序列(Q,H,C,Y,P,A,M,S,R)按字母升序排序,请画出采用堆排序方法时建立的初始堆及第一次输出堆顶元素后筛选调整以后的堆。

22. 假设通信电文使用的字符集为{a,b,c,d,e,f},名字符在电文中出现的频度分别为:34,5,12,23,8,18,试为这6个字符设计哈夫曼编码。请先画出你所构造的哈夫曼树(要求树中左孩子结点的权值小于右孩子结点的权值),然后分别写出每个字符对应的编码。

23. 已知两个4×5的稀疏矩阵的三元组表分别如下:

0 1 4 16 0 1 1 32

1 2 2 18 1 2 2 -22

2 3 4 -25 2 2 5 69

3 4 2 28 3 3 4 25

4 4 2 51

请画出这两个稀疏矩阵之和的三元组表。

24. 从空树起,依次插入关键字40,8,90,15,62,95,12,23,56,32,构造一棵二叉排序树。

(1)画出该二叉排序树

(2)画出删去该树中元素值为90的结点之后的二叉排序树。

25. 画出在一个初始为空的AVL树中依次插入3,1,4,6,9,8,5,7时每一步插入后AVL树的形态。若做了某种旋转,说明旋转的类型。然后,给出在这棵插入后得到的AVL树中删去根结点后的结果。

26. 以知一组元素为(46,25,78,62,12,37,70,29),试画出按元素排列次序插入生成的一棵二叉搜索树。

27. 设散列表的长度m=13;散列函数为H(K)=K mod m,给定的关键码序列为19,14,23,01,68,20,84,27,55,11,试画出用线性探查法解决冲突时所构造的散列表。并求出在等概率的情况下,这种方法的搜索成功时的平均搜索长度和搜索不成功的平均搜索长度。

搜索成功时的平均搜索长度为:ASLsucc=

搜索不成功时的平均搜索长度为:ASLunsucc=

28. 某二叉树的结点数据采用顺序存储表示如下:

(1)试画出此二叉树的图形表示。(3分)

(2)写出结点D的双亲结点及左、右子女。(3分)

(3)将此二叉树看作森林的二叉树表示,试将它还原为森林。(3分)

29. 设待排序序列为{10,18,4,3,6,12,1,9,15,8},请给出用希尔排序每一趟的结果。增量序列取为5,3,2,1。(每一趟2分,共8分)

30、设散列表的长度为13,散列函数为H(k)=k%13,给定的关键码序列为19,14,23,01,68,20,84,27。试画出用线性探查法解决冲突时所构成的散列表。(8分)

24. 对于一个n×n的矩阵A的任一矩阵元素a[I][j],按行存储时和按列存储时的地址之差是多少。(若设两种存储的开始存储地址LOC(0,0)及元素所占存储单元d相同)

25. 假定一组数据对象为(40,28,16,56,50,32,30,63),按次序插入每个对象生成一棵AVL 树(高度平衡的二叉搜索树),根据插入过程填写下表,在相应位置填写所需要的调整类型:“左单旋转”

数据:

调整:

26. 设有一个二维数组A[10][20],按行存放于一个连续的存储空间中,A[0][0]的存储地址是200,每个数组元素占1个存储字,则A[6][2]的存储字地址是多少。

A[6][2]的存储字地址:

27. 已知一棵二叉树的中序和后序序列如下,求该二叉树的高度(假定空树的高度为-1)和度为2、度为1及度为0的结点个数。

中序序列:c,b,d,e,a,g,i,h,j,f

后序序列:c,e,d,b,i,j,h,g,f,a

高度:度为2的结点数:

度为1的结点数:度为0的结点数:

28. 假定一组记录为(36,75,83,54,12,67,60,40),将按次序把每个结点插入到初始为空的一棵AVL 树中,请回答在插入时需进行“左单旋转”、“右单旋转”、“先左后右双旋转”、“先右后左双旋转”,“不调整”的结点数各是多少?

左单旋转结点个数: 右单旋转结点个数: 先左后右双旋转结点个数: 先右后左双旋转结点个数: 不调整结点个数:

29. 已知一个带权图的顶点集V 和边集G 分别为: V={0,1,2,3,4,5,6};

E={(0,1)19,(0,2)10,(0,3)14,(1,2)6,(1,5)5,(2,3)26,(2,4)15,(3,4)18, (4,5)6,(4,6)6,(5,6)12};

试根据迪克斯特拉(Dijkstra)算法求出从顶点0到其余各顶点的最短路径,在下面填写对应的路径长度。

顶点: 0 1 2 3 4 5 6

30. 已知一个数据表为{36,25,25*,62,40,53},请写出在进行快速排序的过程中每次划分后数据表的变化。

(0) [36 25 25* 62 40 53] (1) (2) (3)

31.设有一顺序队列sq ,容量为5,初始状态时sq.front=sq.rear=0,画出做完下列操作后队列及其头尾指针的状态变化情况,若不能入队,请简述其理由后停止。(6分) (1) d,e,b 入队 (2) d,e 出队 (3) i,j 入队 (4) b

出队 (5) n,o,p 入队 32.已知无向图G 的邻接矩阵如下,假设对其每行元素访问时必须从右到左,请写出从V0开始的深度优先搜索的序列。(4分) 4

v 3

v 2

v 1v 0

v 4321

00111010110110111110100110V V V V V ⎥⎥

⎥⎥⎥

⎥⎦

⎤⎢⎢⎢⎢⎢⎢⎣⎡

33.用二分查找法对一个长度为10的有序表进行查找,填写查找每一元素需要的比较次数。(8分)

元素下标 比较次数

34.已知序列(10,18,4,3,6,12,1,9,15,8),请给出采用二路归并排序法对该序列进行升序排序时的每一趟结果。(6分)

35.设散列表HT[0..12],即表的大小为m=13。采用双散列法解决冲突。散列函数和再散列函数分别为:

H0(key )=key% 13; 注:%是求余数运算(=mod )

Hi=(hi-1+REV(key+1)%11+1)%13;

ⅰ=1,2,3………,m-1

其中,函数REV(x)表示颠倒10进制数x的各位,如REV(37)=73, REV(7)=7等。若插入的关键码序列为{2,8,31,20,19,18,53,27}试画出插入这8个关键码后的散列表。

36.设有一个1010的对称矩阵A,将其下三角部分按行存放在一个一维数组B中,A[0][0]存放于B[0]中,那么A[8][5]存放于B中什么位置。

37.已知一棵二叉树的前序和中序序列,求该二叉树的后序序列。

前序序列:A, B, C, D, E, F, G, H, I, J

中序序列:C, B, A, E, F, D, I, H, J, G

后序序列:

38.已知一个有序表 ( 15, 26, 34, 39, 45, 56, 58, 63, 74, 76, 83, 94 ) 顺序存储于一维数组a[12]中,根据折半搜索过程填写成功搜索下表中所给元素34, 56, 58, 63, 94时的比较次数。

34 56 58 63 94

元素值

比较次数

39.设散列表为HT[17], 待插入关键码序列为 { Jan, Feb, Mar, Apr, May, June, July, Aug, Sep, Oct, Nov, Dec },散列函数为H (key) = i 2,其中,i是关键码第一个字母在字母表中

字母A B C D E F G H I J K L M

序号12345678910111213

字母N O P Q R S T U V W X Y Z

序号14151617181920212223242526

试画出相应的散列表;

计算等概率下搜索成功的平均搜索长度;

40. 已知某二叉树的前序序列为EBADCFHGI,中序序列为ABCDEFGHI,请给出二叉树的后序序列。

41. 将关键码53,78,65,17,87,09,81,45,23依次插入到一棵初始为空的二叉搜索树中,画出每插入一个关键码后的二叉搜索树。

42. 设有150个记录要存储到散列表中,并利用线性探查法解决冲突,要求找到所需记录的平均比较次数不超过2次。试问散列表需要设计多大?(设α是散列表的装载因子,则有ASLsucc=(1+1/(1-α))/ 2)。

43. 假定用于通信的电文仅由8个字母a,b,c,d,e,d,f,g,h组成,各个字母在电文中出现的频率分别为5,23,3,6,10,11,36,4。试为这8个字母设计不等长Huffman编码,并输出该电文的总码数。

电文总长度:

44. 设有顺序表中的元素依次为017,094,154,170,275,503,512,553,612,677,675,897,908。试画出对其进行折半搜索时做性能分析用的扩充二叉搜索树(判定树),并计算搜索成功时的平均搜索长度和搜索不成功进的平均搜索长度。

搜索成功时的平均搜索长度ASLsucc=

搜索不成功时的平均搜索长度ASLunsucc=

45. 一棵高度为h的满k叉树有如下性质:第h层上的结点都是叶结点,其余各层上每个结点都有k 棵非空子树,如果按层次自顶向下,同一层上自左向右,顺序从1开始对全部结点进行编号,试问:

(1)第j层的结点个数是多少(j=0,1,2,3,4…..h)

(2)编号为I的结点(若存在)的编号是多少?

(3)编号为I的结点(若存在)的编号是多少?

(4)编号为I的结点有右兄弟的条件是什么?它的右兄弟结点的编号是多少?

(注:可编辑下载,若有不当之处,请指正,谢谢!)

数据结构习题及答案

第1章算法 一、选择题 1.算法的时间复杂度是指()。 A)执行算法程序所需要的时间 B)算法程序中的指令条数 C)算法执行过程中所需要的基本运算次数 D)算法程序的长度 2.算法的空间复杂度是指()。 A)算法程序的长度 B)算法程序所占的存储空间 C)算法执行过程中所需要的存储空间 D)算法程序中的指令条数 3.下面()的时间复杂度最好(即执行时间最短)。 logn) O()O(n ) B)A2logn2 ) D)O(n) C)O(n24.下面累加求和程序段的时间复杂度为()。 int sum(int a[],int n) { int i, s=0; for (i=0;i

s2+=i; i++; } nlog) O(A)O(1 ) B)22) )O(nC)O(n ) D )。 7.下面程序段的时间复杂度为( int prime(int n) { int i=1; int x=(int)sqrt(n); while(i<=x) { i++; if(n%i==0) break; } if(i>x) return 1; else return 0; } nlog) O(O(1 ) BA))2n) O()CO(n ) D))下面程序段的时间复杂度为(8.int fun(int n) { int i=1,s=1; while(s

数据结构试题集(含答案)

程序复杂性 3、具有线性结构的数据结构是(D)。 A.图 B.树 C.广义表 D.栈 4、计算机中的算法指的是解决某一个问题的有限运算序列,它必须具备输入、输出、(B)等5个特性。 A.可执行性、可移植性和可扩充性 B.可执行性、有穷性和确定性 C.确定性、有穷性和稳定性 D.易读性、稳定性和确定性 5、下面程序段的时间复杂度是(C)。 for(i=0;i=(y+1)*(y+1)) y=y+1;

A.O(n) B.) O C. O(1) D.O(n2) (n 二、填空题 1、程序段“i=1;while(i<=n)i=i*2;”的时间复杂度为O(log2n)。 2、数据结构的四种基本类型中,树形结构的元素是一对多关系。 1 答案: 1、(C)。 2存储方 A. 3 A. 4 5 6 A. C. 7、在双向循环链表中,在p指针所指的结点后插入一个指针q所指向的新结点,修改指针的操作是(C)。 A.p->next=q;q->prior=p;p->next->prior=q;q->next=q; B.p->next=q;p->next->prior=q;q->prior=p;q->next=p->next; C.q->prior=p;q->next=p->next;p->next->prior=q;p->next=q; D.q->next=p->next;q->prior=p;p->next=q;p->next=q; 8、线性表采用链式存储时,结点的存储地址(C)。 A.必须是连续的 B.必须是不连续的 C.连续与否均可 D.和头结点的存储地址相连续 9、在一个长度为n的顺序表中删除第i个元素,需要向前移动(A)个元素。

数据结构第1章习题解答

第1章习题解答 1.1什么是数据结构?一个数据结构结构的二元组定义形式是什么样的?举例解释其含义。 [解答] 概括地说,数据结构是互相有关联的数据元素的集合。也就是说,数据结构是由某个数据元素的集合和该集合中的数据元素之间的关系组成的,因此数据结构可以用一个二元组来表示。例如,B=(D,R),其中D是某一数据元素的集合,R是D上的关系的有限集。R所表示的是集合D的数据元素之间的逻辑关系,它表示的可能是数据元素之间客观存在的某种联系,也可能是为了处理问题的需要而人为组织的数据元素之间的某种关系,因此,称之为数据的逻辑结构。例如,一个农历节气表,就构成了一个数据结构,其数据元素是一年的农历二十四节气,数据元素之间的关系是节气的时间先后关系。又如,一个某年级学生的成绩排序表,也是一个数据结构,其数据元素是包含成绩项的该年级的学生记录,数据元素之间的关系是学生之间的成绩高低关系。为了在计算机中进行数据处理,必须把从实际问题中抽象出来的数据的逻辑结构映象到计算机的存储器中,即要把抽象出来的数据元素集合D 和数据元素之间的关系存储到计算机的存储器中,称之为数据的物理结构或存储结构,它是数据的逻辑结构在计算机中的表示。 1.2假设R是集合M上的一个关系,R的定义是什么?对实际问题而言,其含义是什么? [解答] 如果R是对集合M自身的笛卡尔积所取的一个子集,那么我们就说“R是集合M上的一个关系”。对实际问题而言,它表示的是集合M中元素的某种相关性。例如,对于参加一个羽毛球比赛的运动员集合,可以用一个二元关系表示出各场比赛的胜负关系。对于一组课程的集合,可以用一个二元关系表示出各门课程之间的先修和后续关系等等。 1.3设有集合M={d1,d2,d3,d4,d5}上的一个关 R={(d1,d2),(d2,d4),(d4,d5),(d2,d5),(d1,d4),(d1,d5),(d3,d5),(d1,d3)},试说明关系R具有什么样的性质。 [解答] 从二元关系的基本性质容易验证,该关系R是反自反的、反对称的、传递的关系。 因为关系R中没有(d i,d i)这样的元素,所以它是反自反的。 因为关系R中没有(元素d i,d j)和(d j,d i)同时存在的情况,所以它是反对称的。 关系R 的传递性表现在: 有元素(d1,d2),(d2,d4),同时有元素(d1,d4), 有元素(d1,d2),(d2,d5),同时有元素(d1,d5), 有元素(d1,d3),(d3,d5),同时有元素(d1,d5), 有元素(d1,d4),(d4,d5),同时有元素(d1,d5), 有元素(d2,d4),(d4,d5),同时有元素(d2,d5)。 1.4什么是线性结构?什么是非线性结构?举例说明。 [解答]

《数据结构》应用题参考习题

《数据结构》应用题参考习题数据结构是计算机科学中的一门基础课程,它主要研究数据的组织、存储和管理方式,以及不同数据结构对算法执行效率的影响。在实际 应用中,数据结构起到了至关重要的作用。本文将介绍一些《数据结构》的应用题,并给出相应的参考习题。 一、栈的应用题 1. 符号匹配问题 问题描述:给定一个字符串,在其中包含了一些圆括号"()"、方括号"[]"和花括号"{}",判断字符中的括号是否匹配。 例题:判断字符串"{[()]()}"是否匹配。 解题思路:利用栈的先进后出特点,遍历字符串中的每个字符。如 果是左括号,则入栈;如果是右括号,则判断栈顶元素是否与之匹配。 参考习题:编写一个程序,实现括号匹配的功能,并输出匹配结果。 二、队列的应用题 1. 循环队列的应用 问题描述:设计一个循环队列,实现入队、出队等基本操作。 解题思路:利用数组实现循环队列,需要设置一个队头指针front 和一个队尾指针rear。入队操作时,将元素添加到rear位置;出队操作时,返回front位置元素,并将front后移。

参考习题:实现一个循环队列,并进行相关操作的测试。 三、链表的应用题 1. 单链表反转 问题描述:给定一个单链表,将其反转。 例题:将链表1->2->3->4->5反转为5->4->3->2->1。 解题思路:利用三个指针prev、cur和next,依次遍历链表,并修 改指针指向实现链表的反转。 参考习题:编写一个程序,实现单链表反转,并输出反转后的链表。 四、树的应用题 1. 二叉树的遍历 问题描述:给定一个二叉树,实现它的前序遍历、中序遍历和后序 遍历。 解题思路:分别使用递归和迭代的方式实现二叉树的前序遍历、中 序遍历和后序遍历。 参考习题:编写一个程序,实现二叉树的前序遍历、中序遍历和后 序遍历,并输出遍历结果。 五、图的应用题 1. 图的最短路径

数据结构练习试题和答案解析

第1章绪论 一、判断题 1.数据的逻辑结构与数据元素本身的内容和形式无关。(√) 2.一个数据结构是由一个逻辑结构和这个逻辑结构上的一个基本运算集构成的整体。(√) 3.数据元素是数据的最小单位。(×) 4.数据的逻辑结构和数据的存储结构是相同的。(×) 5.程序和算法原则上没有区别,所以在讨论数据结构时可以通用。(×) 6.从逻辑关系上讲,数据结构主要分为线性结构和非线性结构两类。(√) 7.数据的存储结构是数据的逻辑结构的存储映象。(√) 8.数据的物理结构是指数据在计算机内实际的存储形式。(√) 9.数据的逻辑结构是依赖于计算机的。(×) 10.算法是对解题方法和步骤的描述。(√) 二、填空题 1.数据有逻辑结构和存储结构两种结构。 2.数据逻辑结构除了集合以外,还包括线性结构、树形结构和图形结构。 3.数据结构按逻辑结构可分为两大类,它们是线性结构和非线性结构。 4.树形结构和图形结构合称为非线性结构。 5.在树形结构中,除了树根结点以外,其余每个结点只有1个前驱结点。 6.在图形结构中,每个结点的前驱结点数和后继结点数可以任意多个。 7.数据的存储结构又叫物理结构。 8.数据的存储结构形式包括顺序存储、链式存储、索引存储和散列存储。 9.线性结构中的元素之间存在一对一的关系。 10.树形结构中的元素之间存在一对多的关系。 11.图形结构的元素之间存在多对多的关系。 12.数据结构主要研究数据的逻辑结构、存储结构和算法(或运算) 3个方面的内容。 13.数据结构被定义为(D,R),其中D是数据的有限集合,R是D上的关系有限集合。 14.算法是一个有穷指令的集合。 15.算法效率的度量可以分为事先估算法和事后统计法。 16.一个算法的时间复杂度是算法输入规模的函数。 17.算法的空间复杂度是指该算法所耗费的存储空间,它是该算法求解问题规模的n的函数。 18.若一个算法中的语句频度之和为T(n)=6n+3nlog2n,则算法的时间复杂度为O( nlog2n)。 19.若一个算法的语句频度之和为T(n)=3n+nlog2+n2,则算法的时间复杂度为O(n2)。 20.数据结构是一门研究非数值计算的程序问题中计算机的操作对象,以及它们之间的关系和运算的学 科。 三、选择题 1.数据结构通常是研究数据的(A)及它们之间的相互关系。 A.存储结构和逻辑结构 B.存储和抽象 C.联系和抽象 D.联系与逻辑 2.在逻辑上可以把数据结构分成(C)。 A.动态结构和静态结构 B.紧凑结构和非紧凑结构 C.线性结构和非线性结构 D.内部结构和外部结构。 3.数据在计算机存储内表示时,物理地址和逻辑地址相同并且是连续的,称之为(C)。 A.存储结构 B.逻辑结构 C.顺序存储结构 D.链式存储结构 4.非线性结构中的每个结点(D)。 A.无直接前驱结点. B.无直接后继结点.

数据结构-问题求解题

《数据结构》习题库之四:问题求解题 1. 用序列(46,88,45,39,70,58,101,10,66,34)建立一个排序二叉树,画出该树,并求在等概率情况下查找成功的平均查找长度。 2. 给出一组关键字:29,18,25,47,58,12,51,10,分别写出按归并排序方法进行排序时的变化过程,每归并一次书写一个次序。 3. 给出一组关键字:29,18,25,47,58,12,51,10,分别写出按快速排序方法进行排序时的变化过程,每划分一次书写一个次序。 4. 给出一组关键字:29,18,25,47,58,12,51,10,分别写出按堆排序方法进行排序时的变化过程,先建成一个堆,然后每从堆顶取下一个元素后,将堆调整一次。 5. 已知树T的先序遍历序列为ABCDEFGHJKL,后序遍历序列为CBEFDJIKLHGA。请画出树T。 6. 对关键字序列(72,87,61,23,94,16,05,58)进行堆排序,使之按关键字递减次序排列。请写出排序过程中得到的初始堆和前三趟的序列状态。 初始堆:________________________________ 第1趟:________________________________ 第2趟:________________________________ 第3趟:________________________________ 7. 在关键字序列(07,12,15,18,27,32,41,92)中用二分查找法查找和给定值92相等的关键字,请写出查找过程中依次和给定值“92”比较的关键字。 8. 若对序列(76,38,65,13,97,27,50,49)采用堆积排序法(按照值的大小从小到大)进行排序,请分别在下表中写出每一趟的结果: 原始序列 76 38 65 13 97 27 50 49 第1趟结果 第2趟结果 第3趟结果 第4趟结果 9. 已知一带权连通图采用邻接矩阵存储方法,并且邻接矩阵采用三元组表表示,其中,第一个三元组 (5,5,16)分别表示邻接矩阵的行数、列数字与非零元素的个数,从第二个三元组开始,依次按行序为主序的次序分别给出16个非零元素,它们依次为(1,2,7),(1,3,6),(1,4,9),(2,1,7),(2,3,8),(2,4,4),(2,5,4),(3,1,6),(3,2,8),(3,4,6),(4,1,9),(4,2,4),(4,3,6),(4,5,2),(5,2,4),(5,4,2);请分别画出该带权连通图的两棵最小生成树。 10. 已知散列范围为[0:9],散列函数为H(key)=key MOD 9,处理冲突的方法为链地址法,请画出依次插入关键字8,10,14,19,21,23,28,32以后的哈希表。

数据结构题集及答案

判断题 1.数据的逻辑结构与数据元素本身的内容和形式无关。(√) 2.一个数据结构是由一个逻辑结构和这个逻辑结构上的一个基本运算集构成的整体。(√) 3.数据元素是数据的最小单位。(√) 4.数据的逻辑结构和数据的存储结构是相同的。(×) 5.程序和算法原则上是没有区别的,所以在讨论数据结构时可以通用。(×) 6.从逻辑关系上讲,数据结构主要分为线性结构和非线性结构。(√) 7.数据的存储结构是数据的逻辑结构的存储映像。(×) 8.数据的物理结构是指数据在计算机内实际的存储形式。(√) 9.数据的逻辑结构是依赖于计算机的。(×) 10.算法是对解题方法和的描述步骤。(√) 填空题: 1.数据有逻辑结构和存储结构两种结构。 2.数据逻辑结构除了集合以外,还包括线性结构、树形结构和图形结构。 3.数据结构按逻辑结构可分为两大类,它们是线性结构和非线性结构。 4.树形结构和图形结构合称为非线性结构。 5.在树形结构中,除了树根结点以外,其余每个结点只有 1 个前驱结点。 6.在图形结构中,每个结点的前驱结点数和后继结点数可以任意多个。 7.数据的存储结构又叫物理结构。 8.数据的存储结构形式包括顺序存储、链式存储、索引存储和散列存储。 9.线性结构中的元素之间存在一对一的关系。 10.树形结构中的元素之间存在一对多的关系。 11.图形结构的元素之间存在多对多的关系。 12.数据结构主要研究数据的逻辑结构、存储结构和算法(或运算) 3个方面 的内容。 13.数据结构被定义为(D,R),其中D是数据的有限集合,R是D上的关系的 有限集合。 14.算法是一个有穷指令的集合。 15.算法效率的度量可以分为事先估算和事后统计法。 16.一个算法的时间复杂性是算法输入规模的函数。 17.算法的空间复杂度是指该算法所耗费的存储空间,它是该算法求解问题 规模n的函数。 18.若一个算法中的语句频度之和为T(n)=6n+3nlog2n,则算法的时间复杂度为 O ( nlog2n )。 若一个算法中的语句频度之和为T(n)=3n+nlog2n+n2,则算法的时间复杂度为 ___O(n*n)_______ 。 数据结构是一门研究非数值计算的程序设计总是中计算机的操作对象,以及它们之间的关系和运算的学科。 19.串的两种最基本的存储方式是顺序存储方式链式存储方式。 20.两个串相等的充分必要条件是、长度相等对应位置的字符相同。

数据结构习题和答案

习题课 填空 1、对于一棵二叉树,若一个结点的编号为i,则它的左孩子结点的编号为,双亲结点的编号为。 2、向一个长度为n的向量中删除第i个元素(1≤i≤n)时,需向前移动个元素。 3、在一棵二叉树中,若双分支结点数为5个,单分支结点数为6个,则叶子结点数 为个。 4、为了实现折半查找,线性表必须采用方法存储。顺序 5、一种抽象数据类型包括数据对象和。 6、在以L为表头指针的带表头附加结点的单链表和循环单链表中,判断链表为空的条件分别为__________和_______。 7、数据结构被形式地定义为(D, R),其中D是的有限集合,R是D上的有限集合。 8、队列的插入操作在进行,删除操作在进行。 9、二叉搜索树的中序遍历得到的结点序列为____ ____。 10、在顺序表中插入或删除一个元素,需要平均移动元素,具体移动的元素个数与有关。 11、栈的特点是。 12、在单链表中,除了首元结点外,任一结点的存储位置由。 13、在一个具有n个顶点的无向图中,要连通所有顶点则至少需要条边。 14、深度为k(设根的层数为1)的完全二叉树至少有个结点,至多 有个结点。 15、一棵深度为6的满二叉树有个分支结点和个叶子结点。 16、一个算法的效率可分为效率和效率。 17、队列的特点是。 18、一棵深度为5的满二叉树中的结点数为个。 19、在一个具有n个顶点的无向完全图中,包含有________条边,在一个具有n个顶点的有向完全图中,包含有________条边。

简答题 1、已知一组元素为(38,26,62,94,35,50,28,55),画出按元素排列顺序输入生成的一棵二叉搜索树。 答: 2、假设有二维数组A[0..5,0..7],每个元素用相邻的6个字节存储,存储器按字节编址。已知A的起始存储位置(基地址)为1000,计算: (1)末尾元素A57的第一个字节地址为; (2)若按列存储时,元素A47的第一个字节地址为。 (3) 数组A的体积(存储量); (4) 若按行存储时,元素A14的第一个字节地址为。

数据结构试题及答案

数据结构试题 一、单选题 1、在数据结构的讨论中把数据结构从逻辑上分为(C ) A 内部结构与外部结构 B 静态结构与动态结构 C 线性结构与非线性结构 D 紧凑结构与非紧凑结构。 2、采用线性链表表示一个向量时,要求占用的存储空间地址(D ) A 必须是连续的 B 部分地址必须是连续的 C 一定是不连续的 D 可连续可不连续 3、采用顺序搜索方法查找长度为n的顺序表时,搜索成功的平均搜索长度为( D )。 A n B n/2 C (n-1)/2 D (n+1)/2 4、在一个单链表中,若q结点是p结点的前驱结点,若在q与p之间插入结点s,则执行( D )。 A s→link = p→link;p→link = s; B p→link = s; s→link = q; C p→link = s→link;s→link = p; D q→link = s;s→link = p; 5、如果想在4092个数据中只需要选择其中最小的5个,采用( C )方法最好。 A 起泡排序 B 堆排序 C 锦标赛排序 D 快速排序 6、设有两个串t和p,求p在t中首次出现的位置的运算叫做( B )。 A 求子串 B 模式匹配 C 串替换 D 串连接 7、在数组A中,每一个数组元素A[i][j]占用3个存储字,行下标i从1到8,列下标j从1到10。所有数组元素相继存放于一个连续的存储空间中,则存放

该数组至少需要的存储字数是( C )。 A 80 B 100 C 240 D 270 8、将一个递归算法改为对应的非递归算法时,通常需要使用( A )。 A 栈 B 队列 C 循环队列 D 优先队列 9、一个队列的进队列顺序是1, 2, 3, 4,则出队列顺序为( C )。 10、在循环队列中用数组A[0..m-1] 存放队列元素,其队头和队尾指针分别为front和rear,则当前队列中的元素个数是( D )。 A ( front - rear + 1) % m B ( rear - front + 1) % m C ( front - rear + m) % m D ( rear - front + m) % m 11、一个数组元素a[i]与( A )的表示等价。 A *(a+i) B a+i C *a+i D &a+i 12、若需要利用形参直接访问实参,则应把形参变量说明为( B )参数。 A 指针 B 引用 C 值 D 变量 13、下面程序段的时间复杂度为( C ) for (int i=0;i

数据结构课程设计-学生-21个题目

选题一:迷宫与栈问题 【问题描述】 以一个mXn 的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。 【任务要求】 1)首先实现一个以链表作存储结构的栈类型,然后编写一个求解迷宫的非递归程序。 求得的通路以三元组(i,j,d )的形式输出。其中:(i,j )指示迷宫中的一个坐标, d 表示走到下一坐标的方向。如,对于下列数据的迷宫,输出一条通路为:(1,1, 1),(1,2,2),(2,2,2),(3,2,3),(3,1,2),,。 2)编写递归形式的算法,求得迷宫中所有可能的通路。 3)以方阵形式输出迷宫及其通路。 【测试数据】 迷宫的测试数据如下:左上角(0,1)为入口,右下角(8,9)为出口。 1 0 1 1 1 1 1 1 1 1 1 0 0 1 0 0 0 1 0 1 1 0 0 1 0 0 0 1 0 1 1 0 0 0 0 1 1 0 0 1 1 0 1 1 1 0 0 0 0 1 1 0 0 0 1 0 0 0 0 1 1 0 1 0 0 0 1 0 0 1 1 0 1 1 1 0 1 1 0 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 入口 入口 0123456789 出口

选题二:算术表达式与二叉树 【问题描述】 一个表达式和一棵二叉树之间,存在着自然的对应关系。写一个程序,实现基于二叉树 表示的算术表达式的操作。 【任务要求】 假设算术表达式Expression内可以含有变量(a〜z)、常量(0〜9)和二元运算符(+,-,*,/,人(乘哥))。实现以下操作: 1) ReadExpre(E)-以字符序列的形式输入语法正确的前缀表达式并构造表达式E。 2) WriteExpre(E)—用带括弧的中缀表达式输出表达式E。 3) Assign(V,c)-实现对变量V的赋值(V=c),变量的初值为0。 4) Value(E)-对算术表达式E求值。 5) CompoundExpr(P,E1,E2)--构造一个新的复合表达式(E1)P(E2) 【测试数据】 1) 分别输入0;a;-91;+a*bc;+*5A x2*8x;+++*3A x3*2A x2x6并输出。 2)每当输入一个表达式后,对其中的变量赋值,然后对表达式求值。

数据结构问答题

数据结构复习题:绪论 问答题 1、当你为解决某一问题而选择数据结构时,应从哪些方面考虑? 答:通常从两方面考虑:第一是算法所需的存储空间量;第二是算法所需的时间。对算法所需的时间又涉及以下三点: (1)程序运行时所需输入的数据总量。 (2)计算机执行每条指令所需的时间。 (3)程序中指令重复执行的次数。 2、简述逻辑结构与存储结构的关系. 答:数据的逻辑结构反映数据元素之间的逻辑关系(即数据元素之间的关联方式或“邻接关系”),数据的存储结构是数据结构在计算机中的表示,包括数据元素的表示及其关系的表示。 3、数据运算是数据结构的一个重要方面,试举例说明两个数据结构的逻辑结构和存储方式完全相同,只是对于运算的定义不同,因而两个结构具有显著不同的特性,则这两个数据结构是不同的. 答:栈和队列的逻辑结构相同,其存储表示也可相同(顺序存储和链式存储),但由于其运算集合不同而成为不同的数据结构。 数据结构复习题:线性表 问答题 1、线性表有两种存储结构:一是顺序表,二是链表。试问: (1)两种存储表示各有哪些主要优缺点? (2)如果有n个线性表同时并存,并且在处理过程中各表的长度会动态发生变化,线性表的总数也会自动地改变。在此情况下,应选用哪种存储结构?为什么? (3)若线性表的总数基本稳定,且很少进行插入和删除,但要求以最快的速度存取线性表中的元素,那么,应采用哪种存储结构?为什么? 答:(1)顺序存储是按索引(隐含的)直接存取数据元素,方便灵活,效率高,但插入、删除操作时将引起元素移动,因而降低效率;链接存储内存采用动态分配,利用率高,但需增设指示结点之间有序关系的指针域,存取数据元素不如顺序存储方便,但结点的插入、删除操作十分简单。 (2)应选用链接表存储结构。其理由是,链式存储结构用一组任意的存储单元依次存储线性表里各元素,这里存储单元可以是连续的,也可以是不连续的。这种存储结构,在对元素作插入或删除运算时,不需要移动元素,仅修改指针即可。所以很容易实现表的容量扩充。 (3)应选用顺序存储结构。其理由是,每个数据元素的存储位置和线性表的起始位置相差一个和数据元素在线性表中的序号成正比的常数。由此,只要确定了起始位置,线性表中任一数据元素都可随机存取,所以线性表的顺序存储结构是一种随机存取的存储结构。而链表则是一种顺序存取的存储结构。 2、用线性表的顺序结构来描述一个城市的设计和规划合适吗?为什么? 不合适。因为一个城市的设计和规划涉及非常多的项目,很复杂,经常需要修改、扩充和删除各种信息,才能适应不断发展的需要。有鉴于此,顺序线性表不能很好适应其需要,故是不合适的。 3、在单链表和双向表中,能否从当前结点出发访问到任一结点? 在单链表中只能由当前结点访问其后的任一结点,因为没有指向其前驱结点的指针。而在双向链表中,既有指向后继结点的指针又有指向前驱结点的指针,故可由当前结点出发访问链表中任一结点。 4、对链表设置头结点的作用是什么?(至少说出两条好处)

数据结构习题集及答案

第一章 一、填空题 1 数据元素是数据的基本单位,..数据项.......是具有独立含义的最小标识单位。 3 数据之间的关系(逻辑结构)有四种集合、线性结构、树形结构、网状结构或图状结构,可分为....................... ....、...................两大类。 4 数据的存储结构包括..顺序存储结构.....................、..链式存储结构.......................... 二、问答题 1.什么是数据结构?什么是数据类型? 答:数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及他们之间的关系和操作等的学科。 数据类型是一个值的集合和定义在这个值集上的一组操作的总称。 2.叙述算法的定义与特性。 答:算法是对待定问题求解步骤的一种描述,他是指令的有限序列,其中每一条指令表示一个或多个操作。 一个算法具有以下5个重要特性: 1)、有穷性 2)、确定性3)、可行性 4)、输入 5)、输出 3. 叙述算法的时间复杂度。 答:算法中基本操作重复执行的次数是问题规模n的某个函数f(n),算法的时量度,记作T(n)=O(f(n)) 他表示随着问题规模n的增大,算法执行时间增长率和f(n)的增长率相同,称作算法的渐进时间复杂度,简称时间复杂度。 三、判断题(在各题后填写“√”或“×”) 1. 线性结构只能用顺序结构来存放,非线性结构只能用非顺序结构来存放。(×) 2.下列几种数量级从小到大的排列顺序为: O(1) 、O(logn)、O(n) 、O(nlogn) 、O(n2) 、O(n3 ) 、O(2n)。(√) 四、1.计算机执行下面的语句时,语句s的执行频度(重复执行的次数)为 _______ 。 FOR(i=l;i=i;j--) s; 2.有下列运行时间函数: (1)T1 (n)=1000; (2)T2(n)=n2+1000n; (3)T3(n)=3n3+100n2+n+1; 分别写出相应的大O表示的运算时间。(1)_______ (2)_______ (3)_______ 3. 设n为正整数,利用大O记号,将该程序段的执行时间表示为n的函数,则下列程序段的时间复杂度可表示为(1)( O (n.) ) (2)( O(n2 ) ) 1)float sum1(int n){ /* 计算1!+2!+…+n! */ p=1; sum1=0; for (i=1; i<=n; ++i){ p=p*i; sum1=sum1+p } }/* sum1 */ (2) float sum2(int n){ /* 计算1!+2!+…+n! */ sum2=0; for (i=1; i<=n; ++i){ p=1; for (j=1; j<=i; ++j) p=p*j; sum2=sum2+p;} }/* sum2 */ 第二章 一、判断 1. 线性表在顺序存储时,逻辑上相邻的元素未必在存储的物理位置次序上相邻。(×)

数据结构课后习题详解(超完整超经典)

数据结构课后习题详解(超完整超经典)第1章绪论 1.1简述下列术语:数据,数据元素、数据对象、数据结构、存储结构、数据类型和抽象数据类型。 解:数据是对客观事物的符号表示。在计算机科学中是指所有能输入 到计算机中并被计算机程序处理的符号的总称。 数据元素是数据的基本单位,在计算机程序中通常作为一个整体进行 考虑和处理。数据对象是性质相同的数据元素的集合,是数据的一个子集。数据结构是相互之间存在一种或多种特定关系的数据元素的集合。存储结 构是数据结构在计算机中的表示。 数据类型是一个值的集合和定义在这个值集上的一组操作的总称。 抽象数据类型是指一个数学模型以及定义在该模型上的一组操作。是 对一般数据类型的扩展。1.2试描述数据结构和抽象数据类型的概念与程 序设计语言中数据类型概念的区别。 解:抽象数据类型包含一般数据类型的概念,但含义比一般数据类型 更广、更抽象。一般数据类型由具体语言系统内部定义,直接提供给编程 者定义用户数据,因此称它们为预定义数据类型。抽象数据类型通常由编 程者定义,包括定义它所使用的数据和在这些数据上所进行的操作。在定 义抽象数据类型中的数据部分和操作部分时,要求只定义到数据的逻辑结 构和操作说明,不考虑数据的存储结构和操作的具体实现,这样抽象层次 更高,更能为其他用户提供良好的使用接口。1.3设有数据结构(D,R), 其中

Dd1,d2,d3,d4,Rr,rd1,d2,d2,d3,d3,d4 试按图论中图的画法惯例画出其逻辑结构图。 解: 1.4试仿照三元组的抽象数据类型分别写出抽象数据类型复数和有理 数的定义(有理数是其分子、分母均为自然数且分母不为零的分数)。解:数据对象:D={r,i|r,i为实数}数据关系:R={}基本操作: 操作结果:构造一个复数C,其实部和虚部分别为re和imDetroyCmople某(&C) 操作结果:销毁复数CGet(C,k,&e) 操作结果:用e返回复数C的第k元的值操作结果:改变复数C的第 k元的值为e 操作结果:如果复数C的两个元素按升序排列,则返回1,否则返回 0Put(&C,k,e)IAcending(C) ADTRationalNumber{ 数据对象:D={,m|,m为自然数,且m不为0}数据关系:R={}基本操作: InitRationalNumber(&R,,m) 操作结果:构造一个有理数R,其分子和分母分别为和mDetroyRationalNumber(&R) 操作结果:销毁有理数RGet(R,k,&e)

数据结构习题和答案及解析

第 1 章绪论 课后习题讲解 1. 填空 ⑴()是数据的基本单位,在计算机程序中通常作为一个整体进行考虑与处理。 【解答】数据元素 ⑵()是数据的最小单位,()是讨论数据结构时涉及的最小数据单位。 【解答】数据项,数据元素 【分析】数据结构指的是数据元素以及数据元素之间的关系。 ⑶从逻辑关系上讲,数据结构主要分为()、()、()与()。【解答】集合,线性结构,树结构,图结构 ⑷数据的存储结构主要有()与()两种基本方法,不论哪种存储结构,都要存储两方面的内容:()与()。 【解答】顺序存储结构,链接存储结构,数据元素,数据元素之间的关系 ⑸算法具有五个特性,分别是()、()、()、()、()。【解答】有零个或多个输入,有一个或多个输出,有穷性,确定性,可行性

⑹算法的描述方法通常有()、()、()与()四种,其中,()被称为算法语言。 【解答】自然语言,程序设计语言,流程图,伪代码,伪代码 ⑺在一般情况下,一个算法的时间复杂度是()的函数。 【解答】问题规模 ⑻设待处理问题的规模为n,若一个算法的时间复杂度为一个常数,则表示成数量级的形式为(),若为n*log25n,则表示成数量级的形式为()。 【解答】Ο(1),Ο(nlog2n) 【分析】用大O记号表示算法的时间复杂度,需要将低次幂去掉,将最高次幂的系数去掉。 2. 选择题 ⑴顺序存储结构中数据元素之间的逻辑关系是由()表示的,链接存储结构中的数据元素之间的逻辑关系是由()表示的。 A 线性结构 B 非线性结构 C 存储位置 D 指针 【解答】C,D 【分析】顺序存储结构就是用一维数组存储数据结构中的数据元素,其逻辑关系由存储位置(即元素在数组中的下标)表示;链接存储结构中一个数据元素对应链表中的一个结点,元素之间的逻辑关系由结点中的指针表示。

数据结构各章习题及答案!

数据结构习题及解答 第1章 概述 【例1-1】分析以下程序段的时间复杂度。 for(i=0;i

log) 得:T(n)=O(n2 【例1-4】有如下递归函数fact(n),分析其时间复杂度。 fact(int n) { if(n<=1) return(1);① else return(n*fact(n-1));② } 解:设fact(n)的运行时间函数是T(n)。该函数中语句①的运行时间是O(1),语句②的运行时间是T(n-1)+ O(1),其中O(1)为常量运行时间。 由此可得fact(n)的时间复杂度为O(n)。 习题1 一、单项选择题 1.数据结构是指(1. A )。 A.数据元素的组织形式 B.数据类型 C.数据存储结构 D.数据定义 2.数据在计算机存储器内表示时,物理地址与逻辑地址不相同的,称之为(2. C )。 A.存储结构 B.逻辑结构 C.链式存储结构 D.顺序存储结构 3.树形结构是数据元素之间存在一种(3. D )。 A.一对一关系 B.多对多关系 C.多对一关系 D.一对多关系 4.设语句x++的时间是单位时间,则以下语句的时间复杂度为(4. B)。 for(i=1; i<=n; i++) for(j=i; j<=n; j++) x++; A.O(1) B.O(2n) C.O(n) D.O(3n) 5.算法分析的目的是(5. C、),算法分析的两个主要方面是(A)。 (1) A.找出数据结构的合理性 B.研究算法中的输入和输出关系 C.分析算法的效率以求改进 D.分析算法的易懂性和文档性 (2) A.空间复杂度和时间复杂度 B.正确性和简明性 C.可读性和文档性 D.数据复杂性和程序复杂性 6.计算机算法指的是(6. C、),它具备输入,输出和(B)等五个特性。 (1) A.计算方法 B.排序方法 C.解决问题的有限运算序列 D.调度方法 (2) A.可行性,可移植性和可扩充性 B.可行性,确定性和有穷性 C.确定性,有穷性和稳定性 D.易读性,稳定性和安全性 7.数据在计算机内有链式和顺序两种存储方式,在存储空间使用的灵活性上,链式存储比顺序存储要(7. B)。

数据结构(C语言版)1800道题及答案[完整版]

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

数据结构与算法清华典型例题

6.3 典型例题 一、单项选择题 [例6-1]数据结构用集合的观点可以表示为一个二元组DS=(D,R)。其中,D是( ①)的有穷集合,R是D上( ②)的有限集合。 ①A.算法B. 数据元素C. 数据操作D. 逻辑结构 ②A. 操作B. 映像C. 存储D.关系 解析:由数据结构的集合形式化定义可知,本题答案为:①B;②D。 [例6-2]数据的常用存储结构中不包括( )。 A.顺序存储结构B.线性结构C.索引存储结构D.散列存储结构解析:数据通常有四种基本的存储方法,即顺序存储方法、链式存储方法、索引存储方法和散列存储方法。由此可知,本题答案为:B。 [例6-3] 算法指的是( ①),它必须具备( ②)这三个特性。 ①A.计算方法B.排序方法C.解决问题的步骤序列D.调度方法 ②A.可执行性、可移植性、可扩充性B.可执行性、确定性、有穷性 C.确定性、有穷性、稳定性D.易读性、稳定性、安全性 解析:算法是对特定问题求解步骤的一种描述,是由若于条指令组成的有限序列。它必须满足以下性质:输人性、输出性、有穷性、确定性、无二义性和可行性。由此可知,本题答案为:①㈠②B。 [例6-4] 在下面的程序段中,对x的赋值语句的执行频度为( )。 for(i=0;i

相关主题
相关文档
最新文档