文档视界 最新最全的文档下载
当前位置:文档视界 › 数据结构试题与答案.doc

数据结构试题与答案.doc

数据结构试题与答案.doc
数据结构试题与答案.doc

数据结构试卷(十一)

一、选择题 (30 分)

1 .设某无向图有n 个顶点,则该无向图的邻接表中有()个表头结点。

(A) 2n (B) n (C) n/2 (D) n(n-1)

2 .设无向图 G 中有 n 个顶点,则该无向图的最小生成树上有()条边。

(A) n (B) n-1 (C) 2n (D) 2n-1

3 .设一组初始记录关键字序列为(60 , 80 , 55 , 40 , 42 , 85) ,则以第一个关键字45 为

基准而得到的一趟快速排序结果是()。

(A) 40 ,42 ,60 , 55 ,80 ,85 (B) 42 ,45 ,55 , 60 ,85 ,80

(C) 42 , 40 ,55 , 60 ,80 ,85 (D) 42 , 40 ,60 , 85 ,55 ,80

4 .()二叉排序树可以得到一个从小到大的有序序列。

(A) 先序遍历(B) 中序遍历(C) 后序遍历(D) 层次遍历

5 .设按照从上到下、从左到右的顺序从 1 开始对完全二叉树进行顺序编号,则编号为i 结

点的左孩子结点的编号为()。

(A) 2i+1 (B) 2i (C) i/2 (D) 2i-1

6 .程序段 s=i=0 ; do {i=i+1 ; s=s+i ; }while(i<=n) ;的时间复杂度为()。

(A) O(n) (B) O(nlog 2 n) (C) O(n 2 ) (D) O(n 3 /2)

7 .设带有头结点的单向循环链表的头指针变量为head ,则其判空条件是()。

(A) head==0 (B) head->next==0

(C) head->next==head (D) head!=0

8 .设某棵二叉树的高度为10 ,则该二叉树上叶子结点最多有()。

(A) 20 (B) 256 (C) 512 (D) 1024

9 .设一组初始记录关键字序列为(13 ,18 ,24 ,35 ,47 ,50 ,62 ,83 ,90 ,115 ,134),

则利用二分法查找关键字90 需要比较的关键字个数为()。

(A) 1 (B) 2 (C) 3 (D) 4

10. 设指针变量 top 指向当前链式栈的栈顶,则删除栈顶元素的操作序列为()。

(A) top=top+1; (B) top=top-1;

(C) top->next=top; (D) top=top->next;

二、判断题 (20 分)

1 .不论是入队列操作还是入栈操作,在顺序存储结构上都需要考虑“溢出”情况。()

2 .当向二叉排序树中插入一个结点,则该结点一定成为叶子结点。()

3 .设某堆中有 n 个结点,则在该堆中插入一个新结点的时间复杂度为O(log 2 n) 。()

4 .完全二叉树中的叶子结点只可能在最后两层中出现。()

5 .哈夫曼树中没有度数为 1 的结点。()

6 .对连通图进行深度优先遍历可以访问到该图中的所有顶点。()

7 .先序遍历一棵二叉排序树得到的结点序列不一定是有序的序列。()

8 .由树转化成二叉树,该二叉树的右子树不一定为空。()

9 .线性表中的所有元素都有一个前驱元素和后继元素。()

10. 带权无向图的最小生成树是唯一的。()

三、填空题 (30 分)

1.

1. 设指针变量 p 指向双向链表中的结点 A ,指针变量 s 指向被插入的结点 X ,则在

结点 A 的后面插入结点 X 的 操 作 序 列 为 _________=p ; s->right=p->right ;

__________=s ; p->right->left=s ;(设结点中的两个指针域分别为

left 和 right )。

2.

2. 设完全有向图中有 n 个顶点, 则该完全有向图中共有 ________条有向条; 设完全

无向图中有 n 个顶点,则该完全无向图中共有 ________条无向边。

3. 3.

设关键字序列为 (K l ,K 2 , , K n ),则用筛选法建初始堆必须从第

______个元素

开始进行筛选。

4.

4.解决散列表冲突的两种方法是 ________________ 和__________________ 。

5. 5.

设一棵三叉树中有 50 个度数为

0 的结点, 21 个度数为 2 的结点,则该二叉树

中度数为 3 的结点数有 ______个。

6. 6. 高度为 h 的完全二叉树中最少有

________个结点,最多有 ________个结点。

7. 7.

设有一组初始关键字序列为 (24 ,35 ,12 ,27 ,18 ,26) ,则第 3 趟直接插入排

序结束后的结果的是 __________________________________ 。

8. 8.

设有一组初始关键字序列为 (24 ,35 ,12 ,27 ,18 ,26) ,则第 3 趟简单选择排

序结束后的结果的是 __________________________________ 。

9.

9. 设一棵二叉树的前序序列为 ABC ,则有 ______________种不同的二叉树可以得到这种序列。

10. 10. 下面程序段的功能是实现一趟快速排序,请在下划线处填上正确的语句。

struct record {int key;datatype others;};

void quickpass(struct record r[], int s, int t, int &i) {

int j=t; struct record x=r[s]; i=s; while(i

while (ix.key) j=j-1; while (____________________) i=i+1; if (i

if (i

}

_________________; }

四、算法设计题 (20 分 )

设计在链式结构上实现简单选择排序算法。 设计在顺序存储结构上实现求子串算法。 设计求结点在二叉排序树中层次的算法。

数据结构试卷(十一)

一、选择题

1 . B

2 . B

3 . C

4 . B

5 .B

6 . A

7 . C

8 . C

9 . B

10 .D

二、判断题

3. 3.

2. 2. 1. 1.

1 .对

2 .对

3 .对

4 .对

5 .对

6 .对

7 .对

8 .错

9 .错10 .错

三、填空题

1. 1.s->left=p,p->right

2. 2.n(n-1) , n(n-1)/2

3. 3.n/2

4. 4.开放定址法,链地址法

5. 5.14

6. 6.2 h-1, 2 h -1

7.7.(12 , 24 ,35 , 27 , 18 ,26)

8.8.(12 , 18 ,24 , 27 , 35 ,26)

9.9.5

10. 10.i

四、算法设计题

1. 1.设计在链式结构上实现简单选择排序算法。

void simpleselectsorlklist(lklist *&head)

{

lklist *p,*q,*s;int min,t;

if(head==0 ||head->next==0) return;

for(q=head; q!=0;q=q->next)

{

min=q->data; s=q;

for(p=q->next; p!=0;p=p->next) if(min>p->data){min=p->data; s=p;}

if(s!=q){t=s->data; s->data=q->data; q->data=t;}

}

}

2. 2.设计在顺序存储结构上实现求子串算法。

void substring(char s[ ], long start, long count, char t[ ])

{

long i,j,length=strlen(s);

if (start<1 || start>length) printf("The copy position is wrong");

else if (start+count-1>length) printf("Too characters to be copied");

else { for(i=start-1,j=0; i

}

3. 3.设计求结点在二叉排序树中层次的算法。

int lev=0;

typedef struct node{int key; struct node *lchild,*rchild;}bitree;

void level(bitree *bt,int x)

{

if (bt!=0)

{lev++; if (bt->key==x) return; else if (bt->key>x) level(bt->lchild,x); else level(bt->rchild,x);}

}

数据结构试卷(十二)

一、选择题(30 分)

1. 1. 字符串的长度是指()。

(A) 串中不同字符的个数(B) 串中不同字母的个数

(C) 串中所含字符的个数(D) 串中不同数字的个数

2. 2. 建立一个长度为n 的有序单链表的时间复杂度为()

(A) O(n) (B) O(1) (C) O(n 2 ) (D) O(log 2n)

3. 3. 两个字符串相等的充要条件是()。

(A) 两个字符串的长度相等(B) 两个字符串中对应位置上的字符相等

(C) 同时具备 (A) 和 (B) 两个条件(D) 以上答案都不对

4. 4. 设某散列表的长度为100 ,散列函数 H(k)=k % P ,则 P 通常情况下最好选择()。

(A) 99 (B) 97 (C) 91 (D) 93

5. 5. 在二叉排序树中插入一个关键字值的平均时间复杂度为()。

(A) O(n) (B) O(1og 2 n) (C) O(nlog 2 n) (D) O(n 2 )

6. 6. 设一个顺序有序表 A[1:14] 中有 14 个元素,则采用二分法查找元素A[4] 的过程

中比较元素的顺序为 ( )。

(A) A[1] , A[2] , A[3] , A[4] (B) A[1] , A[14] , A[7] , A[4]

(C) A[7] , A[3] , A[5] ,A[4] (D) A[7] , A[5] ,A[3] ,A[4]

7. 7. 设一棵完全二叉树中有65 个结点,则该完全二叉树的深度为()。

(A) 8 (B) 7 (C) 6 (D) 5

8. 8. 设一棵三叉树中有 2 个度数为 1 的结点, 2 个度数为 2 的结点, 2 个度数为 3 的

结点,则该三叉链权中有()个度数为0 的结点。

(A) 5 (B) 6 (C) 7 (D) 8

9. 9. 设无向图 G 中的边的集合E={(a ,b) , (a ,e), (a , c),(b ,e), (e, d) , (d , f) ,

(f, c)},则从顶点 a 出发进行深度优先遍历可以得到的一种顶点序列为()。

(A) aedfcb (B) acfebd (C) aebcfd (D) aedfbc

10. 10. 队列是一种()的线性表。

(A) 先进先出(B) 先进后出(C) 只能插入(D) 只能删除

二、判断题(20 分)

1. 1. 如果两个关键字的值不等但哈希函数值相等,则称这两个关键字为同义词。()

2. 2. 设初始记录关键字基本有序,则快速排序算法的时间复杂度为O(nlog 2 n) 。()

3. 3. 分块查找的基本思想是首先在索引表中进行查找,以便确定给定的关键字可能存

在的块号,然后再在相应的块内进行顺序查找。()

4. 4. 二维数组和多维数组均不是特殊的线性结构。()

5. 5. 向二叉排序树中插入一个结点需要比较的次数可能大于该二叉树的高度。()

6. 6. 如果某个有向图的邻接表中第i 条单链表为空,则第i 个顶点的出度为零。()

7. 7. 非空的双向循环链表中任何结点的前驱指针均不为空。()

8. 8. 不论线性表采用顺序存储结构还是链式存储结构,删除值为X 的结点的时间复

杂度均为 O(n) 。()

9. 9. 图的深度优先遍历算法中需要设置一个标志数组,以便区分图中的每个顶点是否

被访问过。()

10. 10. 稀疏矩阵的压缩存储可以用一个三元组表来表示稀疏矩阵中的非0 元素。()

三、填空题 (30 分)

1 . 1 .设一组初始记录关键字序列为(49 ,38 , 65 ,97 , 76 , 13 , 27 ,50) ,则以 d=4

为增量的一趟希尔排序结束后的结果为_____________________________ 。

2 . 2 .下面程序段的功能是实现在二叉排序树中插入一个新结点,请在下划线处填上正

确的内容。

typedef struct node{int data;struct node *lchild;struct node *rchild;}bitree;

void bstinsert(bitree *&t,int k)

{

if (t==0 ) {____________________________;t->data=k;t->lchild=t->rchild=0;}

else if (t->data>k) bstinsert(t->lchild,k);else__________________________;

}

3 .3 .设指针变量 p 指向单链表中结点 A,指针变量 s 指向被插入的结点 X ,则在结点

A 的后面插入结点 X 需要执行的语句序列:s->next=p->next; _________________; 。

4 .4 .设指针变量 head 指向双向链表中的头结点,指针变量p 指向双向链表中的第一

个结点,则指针变量 p 和指针变量head 之间的关系是 p=_________ 和head=__________ (设结点中的两个指针域分别为llink 和 rlink )。

5 .5 .设某棵二叉树的中序遍历序列为ABCD ,后序遍历序列为BADC ,则其前序遍历

序列为 __________ 。

6 .6 .完全二叉树中第 5 层上最少有 __________ 个结点,最多有 _________个结点。

7 .7 .设有向图中不存在有向边 ,则其对应的邻接矩阵 A 中的数组元素 A[i][j] 的

值等于 ____________ 。

8 .8 .设一组初始记录关键字序列为(49 ,38 , 65 ,97 , 76 ,13 , 27 ,50) ,则第 4 趟

直接选择排序结束后的结果为_____________________________ 。

9 .9 .设连通图 G 中有 n 个顶点 e 条边,则对应的最小生成树上有___________条边。

10 .10 .设有一组初始记录关键字序列为(50 ,16 ,23 ,68 ,94 ,70 ,73) ,则

将它们调整成初始堆只需把16 与 ___________相互交换即可。

四、算法设计题(20 分)

1. 1. 设计一个在链式存储结构上统计二叉树中结点个数的算法。

2. 2. 设计一个算法将无向图的邻接矩阵转为对应邻接表的算法。

数据结构试卷( 12 )参考答案

一、选择题

1 . C

2 . C 3. C 4 . B 5. B

6 . C

7 . B 8. C 9 . A 10 .A

二、判断题

1 .对

2 .错3.对 4 .错5.错

6.对7.对8.对9.对10 .对

三、填空题

1. 1.(49 , 13 ,27 ,50 ,76 ,38 ,65 ,97)

2. 2. t=(bitree *)malloc(sizeof(bitree)) , bstinsert(t->rchild,k)

3. 3. p->next=s

4. 4.head->rlink ,p->llink

5. 5.CABD

6. 6.1,16

7.7.0

8.8.(13 , 27 ,38 ,50 ,76 ,49 ,65 ,97)

9.9.n-1

10.10. 50

四、算法设计题

1. 1.设计一个在链式存储结构上统计二叉树中结点个数的算法。

void countnode(bitree *bt,int &count)

{

if(bt!=0)

{count++; countnode(bt->lchild,count); countnode(bt->rchild,count);} }

2. 2.设计一个算法将无向图的邻接矩阵转为对应邻接表的算法。

typedef struct {int vertex[m]; int edge[m][m];}gadjmatrix;

typedef struct node1{int info;int adjvertex; struct node1 *nextarc;}glinklistnode;

typedef struct node2{int vertexinfo;glinklistnode *firstarc;}glinkheadnode;

void adjmatrixtoadjlist(gadjmatrix g1[ ],glinkheadnode g2[ ])

{

int i,j; glinklistnode *p;

for(i=0;i<=n-1;i++) g2[i].firstarc=0;

for(i=0;i<=n-1;i++) for(j=0;j<=n-1;j++)

if (g1.edge[i][j]==1)

{

p=(glinklistnode *)malloc(sizeof(glinklistnode));p->adjvertex=j;

p->nextarc=g[i].firstarc; g[i].firstarc=p;

p=(glinklistnode *)malloc(sizeof(glinklistnode));p->adjvertex=i;

p->nextarc=g[j].firstarc; g[j].firstarc=p;

}

}

数据结构试卷( 13 )

一、选择题 (30 分)

1 .下列程序段的时间复杂度为()。

for(i=0 ; i

for(i=0 ; i

(A) O(m*n*t) (B) O(m+n+t) (C) O(m+n*t) (D) O(m*t+n)

2 .设顺序线性表中有n 个数据元素,则删除表中第i 个元素需要移动()个元素。

(A) n-i (B) n+l -i (C) n-1-i (D) i

3 .设 F 是由 T1 、T2 和 T3 三棵树组成的森林,与 F 对应的二叉树为 B , T1 、 T2 和 T3

的结点数分别为N1 、N2 和 N3 ,则二叉树 B 的根结点的左子树的结点数为()。

(A) N1-1 (B) N2-1 (C) N2+N3 (D) N1+N3

4 .利用直接插入排序法的思想建立一个有序线性表的时间复杂度为()。

(A) O(n) (B) O(nlog 2 n) (C) O(n 2 ) (D) O(1og 2 n)

5 .设指针变量 p 指向双向链表中结点A,指针变量 s 指向被插入的结点X ,则在结点 A 的

后面插入结点X 的操作序列为()。

(A) p->right=s ; s->left=p ; p->right->left=s ; s->right=p->right ;

(B) s->left=p ; s->right=p->right ; p->right=s ; p->right->left=s ;

(C) p->right=s ; p->right->left=s ; s->left=p ; s->right=p->right ;

(D) s->left=p ;s->right=p->right ; p->right->left=s ; p->right=s ;

6 .下列各种排序算法中平均时间复杂度为O(n 2 )是()。

(A) 快速排序(B) 堆排序(C) 归并排序(D) 冒泡排序

7 .设输入序列 1 、2 、 3 、、 n 经过栈作用后,输出序列中的第一个元素是n ,则输出序

列中的第 i 个输出元素是()。

(A) n-i (B) n-1-i (C) n+l -i (D) 不能确定

8 .设散列表中有m 个存储单元,散列函数H(key)= key % p ,则 p 最好选择()。

(A) 小于等于 m 的最大奇数(B) 小于等于 m 的最大素数

(C) 小于等于 m 的最大偶数(D) 小于等于 m 的最大合数

9 .设在一棵度数为 3 的树中,度数为 3 的结点数有 2 个,度数为 2 的结点数有 1 个,度

数为 1 的结点数有 2 个,那么度数为0 的结点数有()个。

(A) 4 (B) 5 (C) 6 (D) 7

10. 设完全无向图中有n 个顶点,则该完全无向图中有()条边。

(A) n(n-1)/2 (B) n(n-1) (C) n(n+1)/2 (D) (n-1)/2

11. 设顺序表的长度为n ,则顺序查找的平均比较次数为()。

(A) n (B) n/2 (C) (n+1)/2 (D) (n-1)/2

12.设有序表中的元素为 (13 ,18 ,24 ,35 ,47 ,50 , 62) ,则在其中利用二分法查找值为

24 的元素需要经过()次比较。

(A) 1(B) 2(C) 3(D) 4

13.设顺序线性表的长度为 30 ,分成 5 块,每块 6 个元素,如果采用分块查找,则其平均

查找长度为()。

(A) 6 (B) 11 (C) 5 (D) 6.5

14. 设有向无环图 G 中的有向边集合 E={<1 ,2> , <2 ,3> ,<3 , 4> ,<1 , 4>} ,则下列属

于该有向图 G 的一种拓扑排序序列的是()。

(A) 1 ,2,3,4 (B) 2 ,3,4,1 (C) 1 ,4,2, 3 (D) 1 ,2,4,3

15.设有一组初始记录关键字序列为(34 ,76 , 45 ,18 , 26 ,54 ,92) ,则由这组记录关键

字生成的二叉排序树的深度为()。

(A) 4(B) 5(C) 6(D) 7

二、填空题 (30 分)

1. 1.设指针 p 指向单链表中结点 A ,指针 s 指向被插入的结点 X,则在结点 A 的前面插入结点 X 时的操作序列为:

1) s->next=___________ ; 2) p->next=s ; 3) t=p->data ;

4) p->data=___________ ; 5) s->data=t ;

2. 2.设某棵完全二叉树中有100 个结点,则该二叉树中有 ______________个叶子结点。

3. 3.设某顺序循环队列中有m 个元素,且规定队头指针 F 指向队头元素的前一个位置,队尾指针 R 指向队尾元素的当前位置,则该循环队列中最多存储_______队列

元素。

4. 4.对一组初始关键字序列(40 ,50 ,95 ,20 ,15 ,70 , 60 ,45 ,10 )进行冒泡排序,则第一趟需要进行相邻记录的比较的次数为__________,在整个排序过程中

最多需要进行 __________趟排序才可以完成。

5. 5.在堆排序和快速排序中,如果从平均情况下排序的速度最快的角度来考虑应最好选择 _________排序,如果从节省存储空间的角度来考虑则最好选择________排序。

6. 6.设一组初始记录关键字序列为(20 ,12 ,42 , 31 ,18 , 14 ,28) ,则根据这些记录关键字构造的二叉排序树的平均查找长度是_______________________________ 。

7. 7.设一棵二叉树的中序遍历序列为BDCA ,后序遍历序列为DBAC ,则这棵二叉树的前序序列为 ____________________ 。

8. 8.设用于通信的电文仅由8 个字母组成,字母在电文中出现的频率分别为7、19 、

2 、6 、32 、

3 、21 、10 ,根据这些频率作为权值构造哈夫曼树,则这棵哈夫曼树的高

度为 ________________ 。

9. 9.设一组记录关键字序列为(80 ,70 ,33 ,65 ,24 ,56 ,48) ,则用筛选法建成的初始堆为 _______________________ 。

10.10 .设无向图G(如右图所示),则其最小生成树上所有边的权值之和为

_________________ 。

三、判断题 (20 分)

1. 1.有向图的邻接表和逆邻接表中表结点的个数不一定相等。( )

2. 2.对链表进行插入和删除操作时不必移动链表中结点。( )

3. 3.子串“ ABC”在主串“ AABCABCD”中的位置为 2 。( )

4. 4.若一个叶子结点是某二叉树的中序遍历序列的最后一个结点,则它必是该二叉树的先序遍历序列中的最后一个结点。( )

5. 5.希尔排序算法的时间复杂度为O(n 2 )。 ( )

6. 6.用邻接矩阵作为图的存储结构时,则其所占用的存储空间与图中顶点数无关而与图中边数有关。 ( )

7. 7.中序遍历一棵二叉排序树可以得到一个有序的序列。( )

8. 8.入栈操作和入队列操作在链式存储结构上实现时不需要考虑栈溢出的情况。( )

9. 9.顺序表查找指的是在顺序存储结构上进行查找。()

10 .10 .堆是完全二叉树,完全二叉树不一定是堆。()

五、算法设计题(20 分 )

1 . 1 .设计计算二叉树中所有结点值之和的算法。

2 . 2 .设计将所有奇数移到所有偶数之前的算法。

3 . 3 .设计判断单链表中元素是否是递增的算法。

数据结构试卷( 13 )参考答案

一、选择题

1 . A

2 . A 3. A 4 . C 5. D

6 . D

7 . C 8. B 9 . C 10 .A

11 .C 12 .C 13 .D 14.A 15 .A

二、填空题

1. 1. p->next , s->data

2. 2. 50

3. 3. m-1

4. 4. 6 , 8

5. 5. 快速,堆

6. 6. 19/7

7. 7. CBDA

8. 8. 6

9.9.(24 , 65 ,33 , 80 , 70 ,56 , 48)

10.10. 8

三、判断题

1 .错

2 .对3.对 4 .对5.错

6 .错

7 .对8.对9 .错10 .对

四、算法设计题

1 . 1 .设计计算二叉树中所有结点值之和的算法。

void sum(bitree *bt,int &s)

{

if(bt!=0) {s=s+bt->data; sum(bt->lchild,s); sum(bt->rchild,s);} }

2 . 2 .设计将所有奇数移到所有偶数之前的算法。

void quickpass(int r[], int s, int t)

{

int i=s,j=t,x=r[s];

while(i

{

while (i

}

r[i]=x;

}

3 . 3 .设计判断单链表中元素是否是递增的算法。

int isriselk(lklist *head)

{

if(head==0||head->next==0) return(1);else for(q=head,p=head->next;

p!=0;

q=p,p=p->next)if(q->data>p->data)

return(0);

return(1); }

数据结构试卷(十四)

一、选择题 (24 分)

1 .下列程序段的时间复杂度为(

i=0 , s=0 ; while (s

)。

; i++ ; }

(A) O(n

1/2

)

(B) O(n

1/3

)

(C) O(n)

(D) O(n

2 )

2 .设某链表中最常用的操作是在链表的尾部插入或删除元素,则选用下列(

最节省运算时间。 (A) 单向链表 (B) 单向循环链表

)存储方式

(C) 双向链表

(D) 双向循环链表

3 .设指针 q 指向单链表中结点 A ,指针 p 指向单链表中结点 A 的后继结点 B ,指针 s 指向

被插入的结点 X ,则在结点 A 和结点 B 插入结点 X 的操作序列为(

)。

(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 ;

4 .设输入序列为 1 、 2 、 3 、 4 、 5、 6 ,则通过栈的作用后可以得到的输出序列为( )。

(A) 5 ,3 ,4 ,6, 1,2 (B) 3 ,2,5, 6,4 , 1 (C) 3 ,1 ,2 ,5, 4,6 (D) 1 ,5 ,4, 6,2 , 3

5 .设有一个 10 阶的下三角矩阵

A (包括对角线) ,按照从上到下、从左到右的顺序存储到

连续的 55 个存储单元中, 每个数组元素占 1 个字节的存储空间, 则 A[5][4] 地址与 A[0][0]

的地址之差为( )。

(A) 10

(B) 19

(C) 28

(D) 55

6 .设一棵 m 叉树中有 N 1 个度数为 1 的结点, N 2 个度数为 2 的结点, , Nm 个度数为

m 的结点,则该树中共有(

)个叶子结点。

m

m

m

m

(i 1)N i

N i

N i

1

(i 1) N i

(A) i 1

(B) i 1

(C)

i 2

(D)

i 2

7. 二叉排序树中左子树上所有结点的值均(

)根结点的值。

(A) < (B) > (C) = (D) !=

8. 设一组权值集合 W=(15 , 3 , 14 , 2 , 6, 9 , 16 , 17) ,要求根据这些权值集合构造一

棵哈夫曼树,则这棵哈夫曼树的带权路径长度为(

)。

(A) 129

(B) 219

(C) 189

(D) 229

9. 设有 HASH n 个关键字具有相同的

Hash 函数值,则用线性探测法把这

表中需要做(

)次线性探测。

n 个关键字映射到

(A) n

2

(B) n(n+1)

(C) n(n+1)/2

(D) n(n-1)/2

10. 设某棵二叉树中只有度数为 0 和度数为 2 的结点且度数为 0 的结点数为 n ,则这棵二叉中共有

( )个结点。

(A) 2n

(B) n+l

(C) 2n-1

(D) 2n+l

11. 设一组初始记录关键字的长度为

8 ,则最多经过(

)趟插入排序可以得到有序序列。

(A) 6(B) 7(C) 8(D) 9

12.设一组初始记录关键字序列为 (Q ,H , C, Y,P,A ,M ,S, R,D ,F,X) ,则按字母

升序的第一趟冒泡排序结束后的结果是()。

(A) F ,H ,C,D ,P,A,M,Q,R,S,Y,X

(B)P,A,C,S,Q,D,F,X,R, H ,M ,Y

(C)A,D,C,R,F,Q,M ,S,Y,P,H ,X

(D)H ,C,Q,P,A,M ,S,R,D ,F,X,Y

二、填空题 (48 分,其中最后两小题各 6 分 )

1. 1.设需要对 5 个不同的记录关键字进行排序,则至少需要比较_____________次,

至多需要比较_____________次。

2. 2. 快速排序算法的平均时间复杂度为 ____________ ,直接插入排序算法的平均时间复杂度

为 ___________ 。

3. 3. 设二叉排序树的高度为h ,则在该树中查找关键字key 最多需要比较 _________

次。

4. 4. 设在长度为 20 的有序表中进行二分查找,则比较一次查找成功的结点数有

_________个,比较两次查找成功有结点数有_________个。

5. 5.设一棵m叉树脂的结点数为n ,用多重链表表示其存储结构,则该树中有

_________个空指针域。

6. 6. 设指针变量 p 指向单链表中结点 A ,则删除结点 A 的语句序列为: q=p-

>next ;p->data=q->data ; p->next=___________ ; feee(q) ;

7.7.数据结构从逻辑上划分为三种基本类型:___________、__________和

___________。

8.8.设无向图G中有n个顶点e条边,则用邻接矩阵作为图的存储结构进行深度优

先或广度优先遍历时的时间复杂度为_________;用邻接表作为图的存储结构进行深度

优先或广度优先遍历的时间复杂度为_________。

9.9. 设散列表的长度为 8 ,散列函数 H(k)=k % 7 ,用线性探测法解决冲突,则根据一组初始

关键字序列 (8 , 15 , 16 , 22 , 30 , 32) 构造出的散列表的平均查找长度是

________。

10. 10. 设一组初始关键字序列为 (38 , 65 , 97 ,76 ,13 , 27 , 10) ,则第 3 趟冒泡排

序结束后的结果为 _____________________ 。

11. 11. 设一组初始关键字序列为 (38 , 65 , 97 ,76 ,13 , 27 , 10) ,则第 3 趟简单选

择排序后的结果为 ______________________ 。

12. 12. 设有向图 G 中的有向边的集合E={<1 , 2> ,<2 ,3> ,<1 ,4> ,<4 ,5> ,<5 ,

3> , <4 , 6> , <6 , 5>} ,则该图的一个拓扑序列为_________________________ 。13. 13. 下面程序段的功能是建立二叉树的算法,请在下划线处填上正确的内容。

typedef struct node{int data;struct node *lchild;________________;}bitree;

void createbitree(bitree *&bt)

{

scanf( “ %c” ,&ch);

if(ch=='#') ___________;else

{ bt=(bitree*)malloc(sizeof(bitree)); bt->data=ch;

________;createbitree(bt->rchild);}

14. 14. 下面程序段的功能是利用从尾部插入的方法建立单链表的算法,请在下划线处填

上正确的内容。

typedef struct node {int data; struct node *next;} lklist;

void lklistcreate(_____________ *&head )

{

for (i=1;i<=n;i++)

{

p=(lklist *)malloc(sizeof(lklist));scanf( if(i==1)head=q=p;else

->data));p“%d”->next=0;,&(p {q->next=p;____________;}

}

}

三、算法设计题(22 分 )

1 . 1 .设计在链式存储结构上合并排序的算法。

2 . 2 .设计在二叉排序树上查找结点X 的算法。

3 . 3 .设关键字序列(k 1,k 2,, k n-1 )是堆,设计算法将关键字序列(k 1,k 2,, k n-1,

x)调整为堆。

数据结构试卷( 14 )参考答案

一、选择题

1 . A

2 . D 3. B 4.B5.B6.D

7 . A 8 . D 9. D 10.C 11.B 12 .D

二、填空题

1. 1.4,10

2. 2.O(nlog 2 n) , O(n 2 )

3. 3.n

4. 4. 1 , 2

5. 5. n(m-1)+1

6. 6. q->next

7. 7. 线性结构,树型结构,图型结构

8.8.O(n 2 ), O(n+e)

9.9.8/3

10.10. (38 ,13 ,27 ,10 ,65 ,76 , 97)

11.11. (10 ,13 ,27 ,76 ,65 ,97 , 38)

12.12. 124653

13. 13. struct node *rchild , bt=0 , createbitree(bt->lchild)

14. 14. lklist ,q=p

三、算法设计题

1. 1.设计在链式存储结构上合并排序的算法。

void mergelklist(lklist *ha,lklist *hb,lklist *&hc)

lklist *s=hc=0;

while(ha!=0 && hb!=0)

if(ha->datadata){if(s==0) hc=s=ha; else {s->next=ha; s=ha;};ha=ha->next;}

else {if(s==0) hc=s=hb; else {s->next=hb; s=hb;};hb=hb->next;}

if(ha==0) s->next=hb; else s->next=ha;

}

2. 2.设计在二叉排序树上查找结点X 的算法。

bitree *bstsearch1(bitree *t, int key)

{

bitree *p=t;

while(p!=0)if (p->key==key)return(p);else if (p->key>key)p=p->lchild;else p=p->rchild;

return(0);

}

3. 3.设关键字序列(k 1,k 2,, k n-1 )是堆,设计算法将关键字序列(k 1,k 2,,k n-1,

x)调整为堆。

void adjustheap(int r[ ],int n)

{

int j=n,i=j/2,temp=r[j-1];

while (i>=1) if (temp>=r[i-1])break; else{r[j-1]=r[i-1]; j=i; i=i/2;}

r[j-1]=temp;

}

数据结构(十五)

一、单选题(每题2分,共20分)

1. 1. 对一个算法的评价,不包括如下( B)方面的内容。

A.健壮性和可读性 B .并行性C.正确性 D .时空复杂度

2. 2. 在带有头结点的单链表 HL 中,要向表头插入一个由指针 p 指向的结点,

则执行 ( )。

A. p->next=HL->next;HL->next=p;

B.p->next=HL;

HL=p;

C. p->next=HL;p=HL;

D. HL=p; p->next=HL;

3. 3. 对线性表,在下列哪种情况下应当采用链表表示? ( )

A. 经常需要随机地存取元素

B. 经常需要进行插入和删除操作

C. 表中元素需要占据一片连续的存储空间

D. 表中元素的个数不变

4. 4. 一个栈的输入序列为 1 2 3 ,则下列序列中不可能是栈的输出序列的

是( C)

A.231

B.321

C.312

D.123

5. 5. AOV 网是一种()。

A.有向图 B .无向图C.无向无环图D .有向无环图

6. 6. 采用开放定址法处理散列表的冲突时,其平均查找长度()。

A.低于链接法处理冲突 B. 高于链接法处理冲突

C.与链接法处理冲突相同 D .高于二分查找

7. 7. 若需要利用形参直接访问实参时,应将形参变量说明为()参数。

A.值 B .函数 C .指针 D .引用

8. 8. 在稀疏矩阵的带行指针向量的链接存储中,每个单链表中的结点都具

有相同的()。

A.行号 B .列号 C .元素值 D .非零元素个数

9. 9. 快速排序在最坏情况下的时间复杂度为()。

A. O(log 2n) B . O(nlog 2n) C .0(n) D .0(n 2 )

10. 10. 从二叉搜索树中查找一个元素时,其时间复杂度大致为( )。

A. O(n)

B. O(1)

C. O(log 2 n)

D. O(n 2 )

二、二、运算题(每题 6 分,共 24 分)

1. 1.数据结构是指数据及其相互之间的______________。当结点之间存在

M 对 N(M : N)的联系时,称这种结构为 _____________________。

2. 2.队列的插入操作是在队列的___尾______进行,删除操作是在队列的

____首 ______进行。

3. 3. 当用长度为 N 的数组顺序存储一个栈时,假定用 top==N 表示栈空,则表示

栈满的条件是 ___top==0_ __(要超出才为满 )_______________。

4. 4. 对于一个长度为 n 的单链存储的线性表,在表头插入元素的时间复杂度为

_________,在表尾插入元素的时间复杂度为 ____________。

5. 5.设W为一个二维数组,其每个数据元素占用4个字节,行下标 i 从 0

到7 ,列下标j 从0 到3 ,则二维数组W 的数据元素共占用_______个字

节。 W 中第 6 行的元素和第 4 列的元素共占用_ ________个字节。若按行顺

序存放二维数组 W ,其起始地址为 100 ,则二维数组元素 W[6 ,3]

的起始地址为_ _________。

6. 6.广义表A= (a,(a,b),((a,b),c)),则它的深度为____________,它的长度为

____________。

7.7. 二叉树是指度为 2 的____________________树。一棵结点数为 N 的二叉

树,其所有结点的度的总和是 _____________。

8.8.对一棵二叉搜索树进行中序遍历时,得到的结点序列是一个

______________。对一棵由算术表达式组成的二叉语法树进行后序遍历得

到的结点序列是该算术表达式的 __________________。

9.9.对于一棵具有n个结点的二叉树,用二叉链表存储时,其指针总数为

_____________ 个,其中 _______________ 个用于指向孩子,_________________个指针是空闲的。

10.10. 若对一棵完全二叉树从 0 开始进行结点的编号,并按此编号把它顺序存储到

一维数组 A 中,即编号为 0 的结点存储到 A[0] 中。其余类推,则 A[ i ] 元素的左孩子元素为 ________,右孩子元素为 _______________,双亲元素为

____________。

11.11. 在线性表的散列存储中,处理冲突的常用方法有

和两种。12.12. 当待排序的记录数较大,排序码较随机且对稳定性不作要求时,宜采用

_______________排序;当待排序的记录数较大,存储空间允许且要求排

序是稳定时,宜采用 ________________________排序。

三、三、运算题(每题 6 分,共 24 分)

1. 1. 已知一个 6′5 稀疏矩阵如下所示,

0 0 0 0 1

0 0 0 0 0

0 1 0 0 0

0 0 0 0 2

5 0 0 0 0

0 0 7 0 0

试:

(1 )(1)写出它的三元组线性表;

(2 )(2)给出三元组线性表的顺序存储表示。

2. 2.设有一个输入数据的序列是{ 46, 25, 78, 62, 12, 80 }, 试画出从空

树起,逐个输入各个数据而生成的二叉搜索树。

3. 3.对于图6所示的有向图若存储它采用邻接表,并且每个顶点邻接表中

的边结点都是按照终点序号从小到大的次序链接的,试写出:

(1) 从顶点①出发进行深度优先搜索所得到的深度优先生成树;

(2)从顶点②出发进行广度优先搜索所得到的广度优先生成树;

4. 4.已知一个图的顶点集V和边集E分别为:

V={1,2,3,4,5,6,7};

E={<2,1>,<3,2>,<3,6>,<4,3>,<

4,5>,<4,6>,<5,1>,<5,7>,<6,1>,<6,

2>,<6,5>};

若存储它采用邻接表,并且每个顶

点邻接表中的边结点都是按照终点序

图6

号从小到大的次序链接的,按主教材中介绍的拓朴排序算法进行排序,试给出得到的拓朴排序的序列。

四、四、阅读算法(每题7 分,共14 分)

1. 1.int Prime(int n)

{

int i=1;

int x=(int) sqrt(n);

while (++i<=x)

if (n%i==0) break;

if (i>x) return 1;

else return 0;

}

(1)(1) 指出该算法的功能;

(2)(2) 该算法的时间复杂度是多少?

2. 2.写出下述算法的功能:

void AJ(adjlist GL, int i, int n)

{

Queue Q;

InitQueue(Q);

cout<

visited[i]=true;

QInsert(Q,i);

while(!QueueEmpty(Q)) {

int k=QDelete(Q);

edgenode* p=GL[k];

while(p!=NULL)

{

int j=p->adjvex;

if(!visited[j])

{

cout<

visited[j]=true;

QInsert(Q,j);

}

p=p->next;

}

}

}

五、五、算法填空(共8分)

如下为二分查找的非递归算法,试将其填写完整。

Int Binsch(ElemType A[ ],int n,KeyType K)

{

int low=0;

int high=n-1;

while (low<=high)

{

int mid=_______________________________ ;

if (K==A[mid].key) return mid; // 查找成功,返回元素的下标

else if (K<[mid].key)

______________________________________; //在左子表上继续查找

else __________________________________; //在右子表上继续查找

}

return -1; // 查找失败,返回-1

}

六、六、编写算法(共8分)

HL 是单链表的头指针,试写出删除头结点的算法。

ElemType DeleFront(LNode * & HL)

数据结构15 参考答案

一、一、单选题(每题 2 分,共 20 分)

1.B

2.A

3.B

4.C

5.D

6.B

7.D

8.A

9.D10.C

二、二、填空题(每空 1 分,共 26 分)

1. 1. 联系图(或图结构)

2. 2. 尾首

3. 3. top==0

4. 4. O(1)O( n )

5. 5. 128 44 108

6. 6. 3 3

6 5 5 7. 7. 有序n-1

8. 8. 有序序列后缀表达式(或逆波兰式)

1 5 1 9. 9. 2n n-1 n+1

3 2 -1 10. 10. 2i+1 2i+2 (i-1)/2

4 5 -2 11. 11. 开放定址法链接法

5 1 5 12. 12. 快速归并

6 3

7 三、三、运算题(每题 6 分,共24 分)

图 7 1. 1. ( 1 )((1,5,1),(3,2,-1),(4,5,-2),(5,1,5),(6,3,7))

(3 分 )

( 2 )三元组线性表的顺序存储表示如图7 示。

图 8

2. 2.如图8所示。

3. 3. DFS BFS

4. 4. 四、拓朴排序为: 4 3 6 5 7 2 1

四、阅读算法(每题7 分,共14 分)

1. 1.(1) 判断 n 是否是素数(或质数)

( 2 ) O(n )

2. 2.功能为:从初始点v i出发广度优先搜索由邻接表

五、五、算法填空(8分)

GL 所表示的图。(low+high)/2 high=mid-1 low=mid+1

六、六、编写算法(8 分)

ElemType DeleFront(LNode * & HL)

{

if (HL==NULL){

cerr<<" 空表 "<

exit(1);

}

LNode* p=HL;

HL=HL->next;

ElemType temp=p->data;

delete p;

return temp;

}

数据结构(十六)

一、单选题(每题 2 分,共 20 分)

1. 1.栈和队列的共同特点是()。

A.只允许在端点处插入和删除元素

B.都是先进后出

C.都是先进先出

D.没有共同点

2. 2. 用链接方式存储的队列,在进行插入运算时 ( ).

A. 仅修改头指针

B. 头、尾指针都要修改

C. 仅修改尾指针

D. 头、尾指针可能都要修改

3. 3. 以下数据结构中哪一个是非线性结构? ( )

A. 队列

B. 栈

C. 线性表

D. 二叉树

4. 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.696

5. 5. 树最适合用来表示 ( )。

A. 有序数据元素

B. 无序数据元素

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

D. 元素之间无联系的数据

6. 6. 二叉树的第 k 层的结点数最多为 ( ).

A.2 k-1 B.2K+1 C.2K-1 D. 2 k-1

7.7. 若有 18 个元素的有序表存放在一维数组 A[19] 中,第一个元素放 A[1]

中,现进行二分查找,则查找A[3 ]的比较序列的下标依次为 ( )

A. 1,2,3

B. 9 ,5,2,3

C. 9 ,5,3

D. 9 ,4,2 ,3

8.8. 对 n 个记录的文件进行快速排序,所需要的辅助存储空间大致为

A. O(1 )

B. O( n )

C. O(1og 2 n )

D. O (n2 )

9.9. 对于线性表( 7 ,34 ,55 ,25 ,64 ,46 , 20 , 10 )进行散列存储

时,若选用 H( K )=K %9 作为散列函数,则散列地址为 1 的元素有(

)个,

A.1B.2C.3D.4

10. 10. 设有 6 个结点的无向图,该图至少应有 ( )条边才能确保是一个

连通图。

A.5

B.6

C.7

D.8

二、二、填空题(每空1分,共26分)

1. 1.通常从四个方面评价算法的质量:_________、_________、_________

和_________。

(n 3+n 2log 2 n +14 n )/ n 2,其数量级表示为2. 2.一个算法的时间复杂度为

________。

3. 3. 假定一棵树的广义表表示为 A(C,D (E,F,G),H(I,J )),则树中

所含的结点数为 __________个,树的深度为 ___________,树的度为

_________。

4. 4. 后缀算式 923+-102/- 的值为 __________。中缀算式( 3+4X )

-2Y/3 对应的后缀算式为。

5. 5. 若用链表存储一棵二叉树时,每个结点除数据域外,还有指向左孩子

和右孩子的两个指针。在这种存储结构中,n 个结点的二叉树共有 ________ 个指针域,其中有 ________个指针域是存放了地址,有________________个指针是空指针。

6. 6. 对于一个具有 n 个顶点和 e 条边的有向图和无向图,在其对应的邻接表

中,所含边结点分别有 _______个和 ________个。

7.7.AOV 网是一种 ___________________的图。

8.8. 在一个具有 n 个顶点的无向完全图中,包含有 ________条边,在一个具有 n

个顶点的有向完全图中,包含有 ________条边。

9.9. 假定一个线性表为 (12,23,74,55,63,40) ,若按 Key % 4 条件进行划分,使得

同一余数的元素成为一个子表,则得到的四个子表分别为

____________________________、___________________、_______________________和。

10.10. 向一棵 B_ 树插入元素的过程中,若最终引起树根结点的分裂,则新树

比原树的高度 ___________。

11.11. 在堆排序的过程中,对任一分支结点进行筛运算的时间复杂度为

________,整个堆排序过程的时间复杂度为 ________。

12.12. 在快速排序、堆排序、归并排序中, _________排序是稳定的。

三、三、运算题(每题 6 分,共 24 分)

1. 1. 在如下数组 A 中链接存储了一个线性表,表头指针为 A [0].next ,试

写出该线性表。

A 0 1 2 3 4 5 6 7

dat 60 50 78 90 34 40

数据结构试题及答案(免费)

一、单选题(每题 2 分,共20分) 1. 1.对一个算法的评价,不包括如下(B )方面的内容。 A.健壮性和可读性B.并行性C.正确性D.时空复杂度 2. 2.在带有头结点的单链表HL中,要向表头插入一个由指针p指向的结 点,则执行( )。 A. p->next=HL->next; HL->next=p; B. p->next=HL; HL=p; C. p->next=HL; p=HL; D. HL=p; p->next=HL; 3. 3.对线性表,在下列哪种情况下应当采用链表表示?( ) A.经常需要随机地存取元素 B.经常需要进行插入和删除操作 C.表中元素需要占据一片连续的存储空间 D.表中元素的个数不变 4. 4.一个栈的输入序列为1 2 3,则下列序列中不可能是栈的输出序列的是 ( C ) A. 2 3 1 B. 3 2 1 C. 3 1 2 D. 1 2 3 5. 5.AOV网是一种()。 A.有向图B.无向图C.无向无环图D.有向无环图 6. 6.采用开放定址法处理散列表的冲突时,其平均查找长度()。 A.低于链接法处理冲突 B. 高于链接法处理冲突 C.与链接法处理冲突相同D.高于二分查找 7.7.若需要利用形参直接访问实参时,应将形参变量说明为()参数。 A.值B.函数C.指针D.引用 8.8.在稀疏矩阵的带行指针向量的链接存储中,每个单链表中的结点都具 有相同的()。 A.行号B.列号C.元素值D.非零元素个数 9.9.快速排序在最坏情况下的时间复杂度为()。 A.O(log2n) B.O(nlog2n) C.0(n) D.0(n2) 10.10.从二叉搜索树中查找一个元素时,其时间复杂度大致为( )。 A. O(n) B. O(1) C. O(log2n) D. O(n2) 二、二、运算题(每题 6 分,共24分) 1. 1.数据结构是指数据及其相互之间的______________。当结点之间存在M 对N(M:N)的联系时,称这种结构为_____________________。 2. 2.队列的插入操作是在队列的___尾______进行,删除操作是在队列的 ____首______进行。 3. 3.当用长度为N的数组顺序存储一个栈时,假定用top==N表示栈空,则 表示栈满的条件是___top==0___(要超出才为满)_______________。 4. 4.对于一个长度为n的单链存储的线性表,在表头插入元素的时间复杂度 为_________,在表尾插入元素的时间复杂度为____________。

数据结构试题库答案

数据结构试题及答案 一、单项选择题 (1)一个算法应该就是()。 A)程序???B)问题求解步骤得描述 C)要满足五个基本属性??D) A与C (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)数据变量 (7)下列程序得时间复杂度为() i=0;s=0; while(s

《数据结构》题库及答案

《数据结构》题库及答案 一、选择题 1.线性表的顺序存储结构是一种 的存储结构,线性表的链式存储结构是一种 的存储结构。 a. 随机存储; b.顺序存储; c. 索引存取; d. HASH 存取 2.一个栈的入栈序列是a,b,c,d,e ,则栈的不可能的输出序列是 。 a. edcba; b. decba; c. dceab; d.abcde 3.一个队列的入队序列是1,2,3,4,则队列的输出序列是 。 a. 4,3,2,1; b. 1,2,3,4; c. 1,4,3,2; d.3,2,4,1 4.在一个单链表中,已知p 结点是q 结点的直接前驱结点,若在p 和q 之间插入结点s ,则执行的操作是 。 a. s->nxet=p->next; p->next=s; b. p->next=s->next; s->next=p; c. q->next=s; s->next=p; d. p->next=s; s->next=q; 5.设有两个串p,q ,求q 在p 中首次出现的位置的运算称作 。 a.联接 b.模式匹配 c.求子串 d.求串长 6.二维数组M 的成员是6个字符(每个字符占一个存储单元)组成的串,行下标i 的范围从0到8,列下标j 的范围从1到10,则存放M 至少需要 个字节。 a. 90 b.180 c.240 d.540 7.在线索二叉树中,结点p 没有左子树的充要条件是 。 a. p->lch==NULL b. p->ltag==1 c. p->ltag==1且p->lch=NULL d. 以上都不对 8.在栈操作中,输入序列为(A ,B ,C ,D ),不可能得到的输出序列为:______ A 、(A , B , C , D ) B 、(D ,C ,B ,A ) C 、(A ,C ,D ,B ) D 、(C ,A ,B ,D ) 9.已知某二叉树的后序序列是dabec ,中序序列是debac ,则它的先序序列是 。 A 、acbed B 、decab C 、deabc D 、cedba 10.设矩阵A 是一个对称矩阵,为了节省存储空间,将其下三角部分(见下图)按行序存放在一维数组B[1..n(n-1)/2]中,对任一上三角部分元素)(j i a ij ,在一维数组B 的存放位置是 。

数据结构试题(含答案)

一.是非题 (正确的打“√”,错误的打“×”。) 1. 数据结构可用三元式表示(D,S,P)。其中:D是数据对象,S是D上的关系, P是对D的基本操作集。× 2. 线性表的链式存储结构具有可直接存取表中任一元素的优点。× 3. 字符串是数据对象特定的线性表。 4. 二叉树是一棵结点的度最大为二的树。× 5.邻接多重表可以用以表示无向图,也可用以表示有向图。× 6.可从任意有向图中得到关于所有顶点的拓扑次序。× 7.一棵无向连通图的生成树是其极大的连通子图。× 8.二叉排序树的查找长度至多为log2n。× 9.对于一棵m阶的B-树.树中每个结点至多有m 个关键字。除根之外的所有非终端结点至少有┌m/2┐个关键字。× 10.对于目前所知的排序方法,快速排序具有最好的平均性能。 11. 顺序存储方式的优点是存储密度大,且插入、删除运算效率高。× 12. 二维数组是其数据元素为线性表的线性表。 13. 连通图G的生成树是一个包含G的所有n个顶点和n-1条边的子图。× 14. 折半查找不适用于有序链表的查找。 15. 完全二叉树必定是平衡二叉树。 16. 中序线索二叉树的优点是便于在中序下查找直接前驱结点和直接后继结点。 17. 队列是与线性表完全不同的一种数据结构。× 18. 平均查找长度与记录的查找概率有关。 19. 二叉树中每个结点有两个子结点,而对一般的树,则无此限制,所以,二叉树是树的特殊情形。× 20. 算法的时间复杂性越好,可读性就越差;反之,算法的可读性越好,则时间复杂性就越差。× 二.选择题 1. 若对编号为1,2,3的列车车厢依次通过扳道栈进行调度,不能得到 ( e ) 的序列。 a:1,2,3 b:1,3,2 c:2,1,3 d:2,3,1 e:3,1,2 f:3,2,1 2. 递归程序可借助于( b )转化为非递归程序。 a:线性表 b: 栈 c:队列 d:数组 3. 在下列数据结构中( c )具有先进先出(FIFO)特性, ( b )具有先进后出(FILO)特性。 a:线性表 b:栈 c:队列 d:广义表 4. 对字符串s=’data-structure’ 执行操作replace(s,substring(s,6,8),’bas’)

数据结构试题及答案(10套最新)

单选题(每题2分,共20分) 1. 1. 对一个算法的评价,不包括如下(B )方面的内容。 A .健壮性和可读性 B .并行性 C .正确性 D .时空复杂度 2.2. 在带有头结点的单链表HL 中,要向表头插入一个由指针 p 指向 的结点,则执行(A )。 A. p->next=HL->next; HL->next=p; B. p->next=HL; HL=p; 都具有相同的(A )。 A.行号 B .列号 C .元素值 D .非零元素个数 9. 快速排序在最坏情况下的时间复杂度为(D )。 A. O(log 2n) B . O(nlog 2n) C . 0(n) D 10.10. 从二叉搜索树中查找一个元素时,其时间复杂度大致 为 A. O(n) B. O(1) C. O(log 2 n) D. O(n 二、 运算题(每题6分,共24分) 1. 1. 数据结构是指数据及其相互之间的 _________________ 。当结点之 间存在M 对N (M N)的联系时,称这种结构为 __________________________ 。 2. 2. 队列的插入操作是在队列的_ _尾 ________ 行,删除操作是在队 列的 ____ 首 _____ 行。 3. 3. 当用长度为N 的数组顺序存储一个栈时,假定用top==N 表示栈 C. p->next=HL; p=HL; 3. 3. A. C. D. HL=p; p-> next=HL; 对线性表,在下列哪种情况下应当采用链表表示? 经常需要随机地存取元素 B. 表中元素需要占据一片连续的存储空间 一个栈的输入序列为1 2 3, 4. 4. 列的是(C ) A. 2 3 1 C. 3 1 2 AOV 网 是一种(D ) 有向 图 B .无向图 (B ) 经常需要进行插入和删除操作 D.表中元素的个数不变 则下列序列中不可能是栈的输出序 B. 3 2 1 5. 5. 6. .无向无环图 D .有向无环图 采用 开放定址法处理散列表的冲突时,其平均查找长度( B. 高于链接法处理冲突 D .高于二分查找 7. 8. 6. A.低于链接法处理冲突 .与链接法处理冲突相同 7. 参数。 A.值 8. B)。 若需要利用形参直接访问实参时,应将形参变量说明为( B .函数 C .指针 D .引用 在稀疏矩阵的带行指针向量的链接存储中,每个单链表中的结点 9. .0(n 2) (C )。 2 )

数据结构考试题库含答案

数据结构习题集含答案 目录

选择题 第一章绪论 1.数据结构这门学科是针对什么问题而产生的(A ) A、针对非数值计算的程序设计问题 B、针对数值计算的程序设计问题 C、数值计算与非数值计算的问题都针对 D、两者都不针对 2.数据结构这门学科的研究内容下面选项最准确的是(D ) A、研究数据对象和数据之间的关系 B、研究数据对象 C、研究数据对象和数据的操作 D、研究数据对象、数据之间的关系和操作 3.某班级的学生成绩表中查得张三同学的各科成绩记录,其中数据结构考了90分,那 么下面关于数据对象、数据元素、数据项描述正确的是(C ) A、某班级的学生成绩表是数据元素,90分是数据项 B、某班级的学生成绩表是数据对象,90分是数据元素 C、某班级的学生成绩表是数据对象,90分是数据项 D、某班级的学生成绩表是数据元素,90分是数据元素 4.*数据结构是指(A )。 A、数据元素的组织形式 B、数据类型 C、数据存储结构 D、数据定义 5.数据在计算机存储器内表示时,物理地址与逻辑地址不相同,称之为(C )。 A、存储结构 B、逻辑结构 C、链式存储结构 D、顺序存储结构 6.算法分析的目的是(C ) A、找出数据的合理性 B、研究算法中的输入和输出关系 C、分析算法效率以求改进 D、分析算法的易懂性和文档型性

7.算法分析的主要方法(A )。 A、空间复杂度和时间复杂度 B、正确性和简明性 C、可读性和文档性 D、数据复杂性和程序复杂性 8.计算机内部处理的基本单元是(B ) A、数据 B、数据元素 C、数据项 D、数据库 9.数据在计算机内有链式和顺序两种存储方式,在存储空间使用的灵活性上,链式存储 比顺序存储要(B )。 A、低 B、高 C、相同 D、不好说 10.算法的时间复杂度取决于( C ) A 、问题的规模B、待处理数据的初始状态 C、问题的规模和待处理数据的初始状态 D、不好说 11.数据结构既研究数据的逻辑结构,又研究物理结构,这种观点(B )。 A、正确 B、错误 C、前半句对,后半句错 D、前半句错,后半句对 12.在数据结构中,从逻辑上可以把数据结构分成( C ) A、动态结构和静态结构 B、紧凑结构和非紧凑结构 C、线性结构和非线性结构 D、内部结构和外部结构 13.线性表的顺序存储结构是一种( )的存储结构,线性表的链式存储结构是一种( A ) 存储结构。 A、随机存取 B、顺序存取 C、索引存取 D、散列存取 14.*下列程序的时间复杂度是(A ) for (i=1; i<=n; ++i){ for (j=1; j<=n; ++j){ c [i][j]=0;

数据结构试题及答案

数据结构试题? 一、?单选题(每题 2 分,共20分) 1.1.???? 对一个算法的评价,不包括如下( B )方面的内容。 A.健壮性和可读性B.并行性 C.正确性 D.时空复杂度 2.2.???? 在带有头结点的单链表HL中,要向表头插入一个由指针p指向的结点, 则执行( A )。 A. p->next=HL->next; HL->next=p; B. p->next=HL; HL=p; C. p->next=HL; p=HL; D. HL=p; p->next=HL; 3.3.???? 对线性表,在下列哪种情况下应当采用链表表示?( B ) A.经常需要随机地存取元素 B.经常需要进行插入和删除操作 C.表中元素需要占据一片连续的存储空间 D.表中元素的个数不变 4.4.???? 一个栈的输入序列为 1 2 3,则下列序列中不可能是栈的输出序列的是 ( C ) A. 2 3 1 B. 3 2 1 C. 3 1 2 D. 1 2 3 5.5.???? AOV网是一种( D )。 A.有向图 B.无向图 C.无向无环图D.有向无环图 6.6.???? 采用开放定址法处理散列表的冲突时,其平均查找长度( B )。 A.低于链接法处理冲突 B. 高于链接法处理冲突 C.与链接法处理冲突相同 D.高于二分查找 7.7.???? 若需要利用形参直接访问实参时,应将形参变量说明为( D )参数。 A.值 B.函数 C.指针 D.引用 8.8.???? 在稀疏矩阵的带行指针向量的链接存储中,每个单链表中的结点都具有 相同的( A )。 A.行号B.列号 C.元素值 D.非零元素个数 9.9.???? 快速排序在最坏情况下的时间复杂度为( D )。 A.O(log 2n) B.O(nlog 2 n) C.O(n) D.O(n2) 10.10. 从二叉搜索树中查找一个元素时,其时间复杂度大致为( C )。 A. O(n) B. O(1) C. O(log 2 n) D. O(n2) 二、运算题(每题 6 分,共24分) 1. 1.?数据结构是指数据及其相互之间的_对应关系(联系)。当结点之间存在M对N(M: N)的联系时,称这种结构为图(或图结构)。 2. 2.队列的插入操作是在队列的__队尾___进行,删除操作是在队列的_对头_进行。 3. 3.??当用长度为N的数组顺序存储一个栈时,假定用top==N表示栈空,则表示栈 满的条件是_top==0__。 4. 4.???对于一个长度为n的单链存储的线性表,在表头插入元素的时间复杂度为

算法与数据结构题库与答案

一、单项选择题 1 某算法的时间复杂度是O(n 2 ) ,表明该算法()。 A 问题规模是n2 B 问题规模与n2成正比 C 执行时间等于n2 D 执行时间与n2成正比 2、关于数据结构的描述,不正确的是()。 A数据结构相同,对应的存储结构也相同。 B数据结构涉及数据的逻辑结构、存储结构和施加其上的操作等三个方面。 C数据结构操作的实现与存储结构有关。 D定义逻辑结构时可不考虑存储结构。 3、按排序策略分来,起泡排序属于()。 A插入排序B选择排序C交换排序D归并排序 4、利用双向链表作线性表的存储结构的优点是()。 A便于进行插入和删除的操作 B 提高按关系查找数据元素的速度 C节省空间D便于销毁结构释放空间 5、一个队列的进队顺序为1,2,3,4,则该队列可能的输出序列是()。 A 1,2,3,4 B 1,3,2,4 C 1,4,2,3 D 4,3,2,1 6、 Dijkstra算法是按()方法求出图中从某顶点到其余顶点最短路径的。 A按长度递减的顺序求出图的某顶点到其余顶点的最短路径 B按长度递增的顺序求出图的某顶点到其余顶点的最短路径 C通过深度优先遍历求出图中从某顶点到其余顶点的所有路径 D通过广度优先遍历求出图的某顶点到其余顶点的最短路径 7、字符串可定义为n( n≥ 0)个字符的有限()。其中,n是字符串的长度,表明字符串中字符的个数。 A集合B数列C序列D聚合 8、在二维数组A[9][10]中,每个数组元素占用 3 个存储单元,从首地址SA 开始按行连续存放。在这种情况下,元素A[8][5]的起始地址为()。 A SA+141 B SA+144 C SA+222 D SA+255 9、已知广义表为L(A(u,v,(x,y),z),C(m,(),(k,l,n),(())),((())),(e,(f,g),h)),则它的长度是()。 A2B3C4D5 10.对于具有n(n>1)个顶点的强连通图,其有向边条数至少有_____。 A. n+1 B. n C. n-1 D. n-2 11.一个递归算法必须包括 __________ 。 A. 递归部分 B . 结束条件和递归部分 C. 迭代部分 D. 结束条件和迭代部分 12.从逻辑上看可以把数据结构分为__________两大类。 A.动态结构、静态结构B.顺序结构、链式结构 C.线性结构、非线性结构D.初等结构、构造型结构 13、若在长度为n 的顺序表的表尾插入一个新元素的渐进时间复杂度为()。 A O(n) B O(1) C O(n 2) D O(log 2n) 14.采用顺序搜素方式搜索长度为 n 的线性表时,在等概率情况下,搜索成功时的平均搜索 长度为 __________。 A. n B. n/2 C . (n+1)/2 D. (n-1)/2 15、非空的循环单链表first的链尾结点(由p 所指向)满足()。 A p->link==NULL; B P==NULL;

数据结构试题及答案

第一章概论 一、选择题 1、研究数据结构就是研究(D)。 A. 数据的逻辑结构?B。数据的存储结构 C。数据的逻辑结构和存储结构?D.数据的逻辑结构、存储结构及其基本操作(研究非数值计算的程序设计问题中,计算机操作对象以及他们之间的关系和操作) 2、算法分析的两个主要方面是(A)。 A.空间复杂度和时间复杂度???B。正确性和简单性 C。可读性和文档性D.数据复杂性和程序复杂性 3、具有线性结构的数据结构是( D )。(线性结构就是:在非空有限集合中,存在为一个被称为第一个的数据元素和最后一个元素,有除了第一个元素,集合中每一个元素均只有一个前驱,除了最后一个元素有唯一后继)(链表、栈、队列、数组、串) A. 图B. 树??C.广义表(线性表的推广) D.栈 4、计算机中的算法指的是解决某一个问题的有限运算序列,它必须具备输入、输出、( B )等5个特性。 A.可执行性、可移植性和可扩充性? B. 可执行性、有穷性和确定性 C。确定性、有穷性和稳定性??? D. 易读性、稳定性和确定性 5、下面程序段的时间复杂度是( C )。 for(i=0;i

数据结构习题与答案

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

数据结构试题库与答案

数据结构试题库及答案 第一章 概论 一、选择题 1 、研究数据结构就是研究( D )。 A. 数据的逻辑结构 B. 数据的存储结构 C. 数据的逻辑结构和存储结构 D. 数据的逻辑结构、存储结构及其基本操作 2 、算法分析的两个主要方面是( A )。 A. 空间复杂度和时间复杂度 B. 正确性和简单性 C. 可读性和文档性 D. 数据复杂性和程序复杂性 3 、具有线性结构的数据结构是( D )。 A. 图 B. 树 C. 广义表 D. 栈 4 、计算机中的算法指的是解决某一个问题的有限运算序列,它必须具备输入、输出、 ( B )等 5 个 特性。 A. 可执行性、可移植性和可扩充性 B. 可执行性、有穷性和确定性 C. 确定性、有穷性和稳定性 D.易读性、稳定性和确定性 5 、下面程序段的时间复杂度是( C )。 for(i=0;i

数据结构考试试题库含答案解析

数据结构习题集含答案 目录 目录 (1) 选择题 (2) 第一章绪论 (2) 第二章线性表 (4) 第三章栈和队列 (6) 第四章串 (7) 第五章数组和广义表 (8) 第六章树和二叉树 (8) 第七章图 (11) 第八章查找 (13) 第九章排序 (14) 简答题 (19) 第一章绪论 (19) 第二章线性表 (24) 第三章栈和队列 (26) 第四章串 (28) 第五章数组和广义表 (29) 第六章树和二叉树 (31) 第七章图 (36) 第八章查找 (38) 第九章排序 (39) 编程题 (41) 第一章绪论 (41) 第二章线性表 (41) 第三章栈和队列 (52) 第四章串 (52) 第五章数组和广义表 (52) 第六章树和二叉树 (52) 第七章图 (52) 第八章查找 (52) 第九章排序 (57)

选择题 第一章绪论 1.数据结构这门学科是针对什么问题而产生的?(A ) A、针对非数值计算的程序设计问题 B、针对数值计算的程序设计问题 C、数值计算与非数值计算的问题都针对 D、两者都不针对 2.数据结构这门学科的研究内容下面选项最准确的是(D ) A、研究数据对象和数据之间的关系 B、研究数据对象 C、研究数据对象和数据的操作 D、研究数据对象、数据之间的关系和操作 3.某班级的学生成绩表中查得张三同学的各科成绩记录,其中数据结构考了90 分,那么下面关于数据对象、数据元素、数据项描述正确的是(C ) A、某班级的学生成绩表是数据元素,90分是数据项 B、某班级的学生成绩表是数据对象,90分是数据元素 C、某班级的学生成绩表是数据对象,90分是数据项 D、某班级的学生成绩表是数据元素,90分是数据元素 4.*数据结构是指(A )。 A、数据元素的组织形式 B、数据类型 C、数据存储结构 D、数据定义 5.数据在计算机存储器内表示时,物理地址与逻辑地址不相同,称之为(C )。 A、存储结构 B、逻辑结构 C、链式存储结构 D、顺序存储结构 6.算法分析的目的是(C ) A、找出数据的合理性 B、研究算法中的输入和输出关系

数据结构试题及答案

好风光好感动1、线性表的逻辑顺序与物理顺序总是一致的。( x ) 2、线性表的顺序存储表示优于链式存储表示。( X ) 3、线性表若采用链式存储表示时所有结点之间的存储单元地址可连续可不连续。( v ) 4、二维数组是其数组元素为线性表的线性表。( v ) 5、每种数据结构都应具备三种基本运算:插入、删除和搜索。( x ) 6、数据结构概念包括数据之间的逻辑结构,数据在计算机中的存储方式和数据的运算三个 方面。( v ) 7、线性表中的每个结点最多只有一个前驱和一个后继。(x ) 8、线性的数据结构可以顺序存储,也可以存储。非线性的数据结构只能存储。(x ) 9、栈和队列逻辑上都是线性表。(v ) 10、单链表从任何一个结点出发,都能访问到所有结点(v ) 11、删除二叉排序树中一个结点,再重新插入上去,一定能得到原来的二叉排序树。(x ) 12、快速排序是排序算法中最快的一种。(x ) 13、多维数组是向量的推广。(x) 14、一般树和二叉树的结点数目都可以为0。(v) 15、直接选择排序是一种不稳定的排序方法。(x ) 16、98、对一个堆按层次遍历,不一定能得到一个有序序列。(v ) 17、在只有度为0和度为k的结点的k叉树中,设度为0的结点有n0个,度为k的结点有nk个,则有n0=nk+1。(x ) 18、折半搜索只适用与有序表,包括有序的顺序表和有序的链表。(x ) 19、堆栈在数据中的存储原则是先进先出。(x ) 20、队列在数据中的存储原则是后进先出。(x ) 21、用相邻矩阵表示图所用的存储空间大小与图的边数成正比。(x ) 22、哈夫曼树一定是满二叉树。(x ) 23、程序是用计算机语言表述的算法。(v) 24、线性表的顺序存储结构是通过数据元素的存储地址直接反映数据元素的逻辑关系。(v ) 25、用一组地址连续的存储单元存放的元素一定构成线性表。(v ) 26、堆栈、队列和数组的逻辑结构都是线性表结构。(v ) 27、给定一组权值,可以唯一构造出一棵哈夫曼树。(x ) 28、只有在初始数据为逆序时,冒泡排序所执行的比较次数最多。(v ) 29、希尔排序在较率上较直接接入排序有较大的改进。但是不稳定的。(v )

十套数据结构试题与答案

数据结构试卷 数据结构试卷 数据结构试卷 数据结构试卷 数据结构试卷 数据结构试卷 数据结构试卷 数据结构试卷 数据结构试卷 数据结构试卷 (一) (二) (三) (四) (五) (六) (七 )(八 ) (九 ) (十 ) 9 12 15 17 19 21 24 数据结构试卷 数据结构试卷 数据结构试卷 数据结构试卷 数据结构试卷 数据结构试卷 数据结构试卷 数据结构试卷 数据结构试卷 数据结构试卷 (一) (二) (三 ) (四 ) (五 ) (六) (七) (八) (九) (十 ) 27 28 29 31 33 35 37 38 39 40 数据结构试卷(一) 、单选题(每题 栈和队列的共同特点是(A ) 。 A. 只允许在端点处插入和删除元素 B. 都是先进后出 C. 都是先进先出 D. 没有共同点 用链接方式存储的队列,在进行插入运算时 (C ). 头、尾指针都要修改 头、尾指针可能都要修改 (D ) 线性表 2分,共20分) 1. 2. A. C. 3. A. 4. 仅修改头指针 B. 仅修改尾指针 D. 以下数据结构中哪一个是非线性结构? 队列 B.栈 C. 设有一个二维数组 A[m][ n],假设 个空间,问 676(10),每个元素占 制表示。 .688 D. 二叉树 A[2][2]存放位置在 (10)存放在什么位置?脚注(10)表示用10进 A[0][0] 存放位置在644(10), A[3][3] .678 C C ) 。 B. A 5.树最适合用来表示( A.有序数据元素 C.元素之间具有分支层次关系的数据 二叉树的第k 层的结点数最多为(D ). k .2 -1 B.2K+1 C.2K-1 若有18个元素的有序表存放在一维数组 6. A 7. 692 D . 696 D. 无序数据元素 乙间无联系的数 据 元素之 f k-1 D. 2 A[19]中,第一个元素放 A[1]中,现进行二 分查找,则查找 A : 3 ]的比较序列的下标依次为 (C ) A. 1 , 2, 3 B. 9 , 5, 2, 3 C. 9 , 5, 3 D. 9 , 4, 2, 3 对n 个记录的文件进行快速排序,所需要的辅助存储空间大致为 D. O 8. A. O (1) B. O (n ) C. O (1og 2n ) D. O (n2) 9. 对于线性表(7, 34, 55, 25, 64, 46, 20, 10)进行散列存储时,若选用 H (K ) =K %9作为散列函数,则散列地址为 1的元素有(D )个, A . 1 B . 2 C . 3 10. 设有6个结点的无向图,该图至少应有 ( A.5 B.6 C.7 D.8 二、填空题(每空 1分,共26分) 1.通常从四个方面评价算法的质量: _ 高效率 _______ 和―强壮性 _______ 。 1. 一个算法的时间复杂度为(n 3 +nlog 2n+14n)/ n 2 ,其数量级表示为 —o(n) ____________________ 。 2. 假定一棵树的广义表表示为 A (C, D (E , F , G , H( I , J )),则树中所含的结点数为 __________ 个,树的深度为 ____________ ,树的度为 ___________ 。 .4 条边才能确保是一个连通图。 正确性 易读性

数据结构试卷及答案压缩版

《数据结构》试卷及答案 1.算法分析的目的是( )。 A.找出数据结构的合理性 B.研究算法中输入和输出的关系 C.分析算法的效率以求改进 D.分析算法的易懂性和文档性 2.()是具有相同特性数据元素的集合,是数据的子集。 A.数据符号 B.数据对象 C.数据 D.数据结构 3.用链表表示线性表的优点是( )。 A.便于随机存取 B.花费的存储空间比顺序表少 C.便于插入与删除 D.数据元素的物理顺序与逻辑顺序相同 4.输入序列为(A,B,C,D)不可能的输出有()。 A.(A,B,C,D) B. (D,C,B,A) C. (A,C,D,B) D . (C,A,B,D) 5.在数组表示的循环队列中,front、rear分别为队列的头、尾指针,maxSize为数组的最大长度,队满的条件是( )。 A. front=maxSize B. (rear+1)%maxSize=front C. rear=maxSize D. rear=front 6.设有串t='I am a good student ',那么Substr(t,6,6)=()。 A. student B. a good s C. good D. a good 7.设有一个对称矩阵A,采用压缩存储方式,以行序为主序存储a11为第一个元素,其存储地址为1,每个元素占一个地址空间,则a85地址为()。 A.23 B.33 C.18 D. 40 8.已知广义表LS=(A,(B,C,D),E)运用head和tail函数,取出LS中原子b的运算()。 A. Gethead(Gethead(LS)) B. Gettail(Gethead(LS)) C. Gethead(Gethead(Gettail(LS))) D. Gethead(Gettail(LS)) 9.若已知一棵二叉树先序序列为ABCDEFG,中序序列为CBDAEGF,则其后序序列为( ) A. CDBGFEA B. CDBFGEA C. CDBAGFE D. BCDAGFE 10.下列存储形式中,( ) 不是树的存储形式。 A.双亲表示法 B.左子女右兄弟表示法 C.广义表表示法 D.顺序表示法 11.对待排序的元素序列进行划分,将其分为左、右两个子序列,再对两个子序列施加同样的排序操作,直到子序列为空或只剩一个元素为止。这样的排序方法是( )。 A.直接选择排序 B.直接插入排序 C.快速排序 D.起泡排序 12.采用折半查找方法进行查找,数据文件应为(),且限于()。

数据结构习题及答案

第一章 1.在数据结构中,从逻辑上可以把数据结构分为(C ) A.动态结构和静态结构 B. 紧凑结构和非紧凑结构 C.线性结构和非线性结构 D. 内部结构和外部结构 ● 2.在数据结构中,与所使用的计算机无关的是( A ) A. 逻辑结构 B. 存储结构 C. 逻辑和存储结构 D. 物理结构 3.下面程序的时间复杂度为____O(mn)_______。 for (int i=1; i<=m; i++) for (int j=1; j<=n; j++ ) S+=i 第二章线性表 ●链表不具备的特点是(A) A 可以随机访问任一结点(顺序) B 插入删除不需要移动元素 C 不必事先估计空间 D 所需空间与其长度成正比 2. 不带头结点的单链表head为空的判定条件为(A ),带头结点的单链表head为空的判定条件为(B ) A head==null B head->next==null C head->next==head D head!=null ●3.在线性表的下列存储结构中,读取元素花费时间最少的是(D) A 单链表 B 双链表 C 循环链表 D 顺序表 ● 4.对于只在表的首、尾两端进行手稿操作的线性表,宜采用的存储结构为(C) A 顺序表 B 用头指针表示的单循环链表 C 用尾指针表示的单循环链表 D 单链表 ● 5.在一个具有n 个结点的有序单链表中插入一个新的结点,并保持链表元素仍然有序, 则操作的时间复杂度为( D ) A O(1) B O(log2n) C O(n2) D O(n) ● 6.在一个长度为n (n>1)的单链表上,设有头和尾两个指针,执行(B)操作与链表的长 度有关 A 删除单链表中第一个元素 B 删除单链表中最后一个元素 C 在第一个元素之前插入一个新元素 D 在最后一个元素之后插入一个新元素 ●7.与单链表相比,双向链表的优点之一是(D) A 插入删除操作更简单 B 可以进行随机访问 C 可以省略表头指针或表尾指针 D 顺序访问相邻结点更容易 ●8.若list是某带头结点的循环链表的头结点指针,则该链表最后那个链结点的指针域 (头结点的地址)中存放的是( B ) A list的地址 B list的内容 C list指的链结点的值 D 链表第一个链结点的地址 ●9.若list1和list2分别为一个单链表与一个双向链表的第一个结点的指针,则( B ) A list2比list1占用更多的存储单元 B list1与list2占用相同的存储单元 C list1和list2应该是相同类型的指针变量 D 双向链表比单链表占用更多的存储单元 10.链表中的每个链结点占用的存储空间不必连续,这句话正确吗? (不正确) 11. 某线性表采用顺序存储结构,元素长度为4,首地址为100,则下标为12的(第13个)元素的存储地址为148。V 100+4*12=148 11.在顺序表的(最后一个结点之后)插入一个新的数据元素不必移动任何元素。 12.若对线性表进行的操作主要不是插入删除,则该线性表宜采用(顺序)存储结构,若频繁地对线性表进行插入和删除操作,则该线性表宜采用( 链 )存储结构。

数据结构试题及答案.docx

数据结构试题及答案 一、选择题(每小题2分,共20分),每个题的备选答案中,只有一个是正确的,请将答案填写在试题的括号中。 1、对顺序存储的线性表,设其长度为20,在任何位置上插入或删除操作都是 等概率的。插入一个元素时平均要移动表中的( A )个元素。 A.10 B.9 C.11 D.12 2、若某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用( D )存储方式最节省运算时间。 A.单链表 B.仅有头指针的单循环链表 C.双链表 D.仅有尾指针的单循环链表 3、当利用大小为n的数组顺序存储一个栈时,假定用top==n表示栈空,则向这个栈插入一个元素时,首先应执行( B )语句修改top指针。 A.top++ B.top-- C.top = 0 D.top 4、设入栈顺序为A,B,C,D,E,则出栈序列不可能是( C )。A.EDCBA B.ABCDE C.ADEBC D.ABDEC 5、已知关键字序列(46, 79, 56, 38, 40, 84),采用快速排序(以位于最左位 置的关键字为基准)得到的第一次划分结果为:( A ) A.{ 40, 38, 46, 56, 79, 84 } B.{ 38, 46, 79, 56, 40, 84 } C.{ 38, 46, 56, 79, 40, 84 } D.{ 40, 38, 46, 79, 56, 84 } 6、一个有n个顶点和n条边的无向图一定是( C )。 A.不连通的 B.连通的 C.有环的 D.无环的 7、在一棵具有n个结点的二叉树的第i层上,最多具有( B )个结点。 A.2i B.2i-1 C.2i+1 D.2n 8、对线性表采用折半查找法,该线性表必须( B )。 A.采用顺序存储结构B.采用顺序存储结构,且元素按值有序 C.采用链式存储结构 D.采用链式存储结构,且元素按值有序 9、在一棵具有n个结点的完全二叉树中,分支结点的最大编号为( C )。A.?(n-1)/2? B.?n/2? C.?n/2? D.?n/2? -1 10、在一个无向图中,所有顶点的度数之和等于所有边数的 ( D ) 倍。 A.3 B.1/2 C.1 D.2 二、填空题(每小题2分,共20分),请将正确的结果,填写在试题的横线上。 1、带头结点的循环链表L为空的条件是。 2、序列A={12, 70, 33, 65, 24, 56}给出对应于序列A的大顶堆HA(以线性数 组表示)。 3、每次使两个相邻的有序表合并成一个有序表,这种排序方法叫做________ 排序。 4、设循环队列Q的队头和队尾指针分别为front和rear,队列的最大容量为MaxSize,且规定判断队空的条件为Q.front = = Q.rear,则队列的长度 为。 5、已知数组A[0..11][0..8]按行优先存储,每个元素占有5个存储单元,且 A[0][0]的地址为1000(十进制),则A[6][7]的地址为________________。 6、已知广义表A=(a,(),(b,(c))),则其深度为。 7、在一棵二叉树中,假定度为2的结点个数为5个,度为1的结点个数为6 个,则叶子结点数为__ ____个。

相关文档
相关文档 最新文档