文档库 最新最全的文档下载
当前位置:文档库 › 数据结构练习题含答案

数据结构练习题含答案

数据结构练习题含答案
数据结构练习题含答案

数据结构练习题

习题1 绪论

1.1 单项选择题

1. 数据结构是一门研究非数值计算的程序设计问题中,数据元素的①、数据信息在计算机中的②以及一组相关的运算等的课程。

① A.操作对象B.计算方法C.逻辑结构D.数据映象

② A.存储结构B.关系C.运算D.算法

2. 数据结构DS(Data Struct)可以被形式地定义为DS=(D,R),其中D是①的有限集合,R是D上的②有限集合。

① A.算法B.数据元素C.数据操作D.数据对象

② A.操作B.映象C.存储D.关系

3. 在数据结构中,从逻辑上可以把数据结构分成。

A.动态结构和静态结构B.紧凑结构和非紧凑结构

C.线性结构和非线性结构D.内部结构和外部结构

4. 算法分析的目的是①,算法分析的两个主要方面是②。

① A. 找出数据结构的合理性 B. 研究算法中的输入和输出的关系

C. 分析算法的效率以求改进

D. 分析算法的易懂性和文档性

② A. 空间复杂性和时间复杂性 B. 正确性和简明性

C. 可读性和文档性

D. 数据复杂性和程序复杂性

5. 计算机算法指的是①,它必具备输入、输出和②等五个特性。

① A. 计算方法 B. 排序方法

C. 解决问题的有限运算序列

D. 调度方法

② A. 可行性、可移植性和可扩充性 B. 可行性、确定性和有穷性

C. 确定性、有穷性和稳定性

D. 易读性、稳定性和安全性

1.2 填空题(将正确的答案填在相应的空中)

1. 数据逻辑结构包括、和三种类型,树形结构和图形结构合称为。

2. 在线性结构中,第一个结点前驱结点,其余每个结点有且只有个前驱结点;最后一个结点后续结点,其余每个结点有且只有个后续结点。

3. 在树形结构中,树根结点没有结点,其余每个结点有且只有个直接前驱结点,叶子结点没有结点,其余每个结点的直接后续结点可以。

4. 在图形结构中,每个结点的前驱结点数和后续结点数可以。

5. 线性结构中元素之间存在关系,树形结构中元素之间存在关系,图形结构中元素之间存在关系。

6. 算法的五个重要特性是__ __ , __ __ , ___ _ , __ __ , _ ___。

7. 分析下面算法(程序段),给出最大语句频度,该算法的时间复杂度是__ __。

for (i=0;i

for (j=0;j

A[i][j]=0;

8. 分析下面算法(程序段),给出最大语句频度,该算法的时间复杂度是__ __。

for (i=0;i

for (j=0; j

A[i][j]=0;

9. 分析下面算法(程序段),给出最大语句频度,该算法的时间复杂度是__ __。

s=0;

for (i=0;i

for (j=0;j

for (k=0;k

s=s+B[i][j][k];

sum=s;

10. 分析下面算法(程序段)给出最大语句频度 ,该算法的时间复杂度是__ __。

i=s=0; while (s

s+=i; //s=s+i }

11. 分析下面算法(程序段)给出最大语句频度 ,该算法的时间复杂度是__ __。

i=1;

while (i<=n) i=i*2; 1.3 算法设计题

1. 试写一算法,自大到小依次输出顺序读入的三个数X,Y 和Z 的值.

2. 试写一算法,求出n 个数据中的最大值。写出最大语句频度,该算法的时间复杂度。 习题答案

1.1 1. C , A

2. B,D

3. C

4. C, A

5. C,B 1.2 1. 线性结构、树形结构、图形结构,非线性结构 2. 没有、1、没有、1

3. 前驱、1、后续、任意多个

4. 任意多个

5. 一对一、一对多、多对多

6. 有穷性、确定性、可行性、输入、输出

7. 最大语句频度:n 2 , 时间复杂度:. O (n 2

)

8. 最大语句频度:n (n+1)/2 , 时间复杂度:. O (n 2

)

9. 最大语句频度:n 3 , 时间复杂度:. O (n 3

) 10. 最大语句频度:n 12

, 时间复杂度:. O (n 1

2

) 11. 最大语句频度:log 2n , 时间复杂度:. O (log 2n )

习题2 线性表

2.1 单项选择题

1. 一个向量(即一批地址连续的存储单元)第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是__ __。

A. 110

B. 108

C. 100

D. 120

2. 线性表的顺序存储结构是一种__ _的存储结构,而链式存储结构是一种__ _的存储结构。

A .随机存取

B .索引存取

C .顺序存取

D .散列存取 3. 线性表的逻辑顺序与存储顺序总是一致的,这种说法__ _。

A. 正确

B. 不正确

4. 线性表若采用链式存储结构时,要求内存中可用存储单元的地址__ _。

A. 必须是连续的

B. 部分地址必须是连续的

C. 一定是不连续的

D. 连续或不连续都可以 5. 在以下的叙述中,正确的是__ _。

A. 线性表的顺序存储结构优于链表存储结构

B. 线性表的顺序存储结构适用于频繁插入/删除数据元素的情况

C. 线性表的链表存储结构适用于频繁插入/删除数据元素的情况

D. 线性表的链表存储结构优于顺序存储结构

6. 每种数据结构都具备三个基本运算:插入、删除和查找,这种说法__ _。

A. 正确

B. 不正确

7. 不带头结点的单链表head为空的判定条件是____。

A. head= =NULL

B. head->next= =NULL

C. head->next= =head

D. head!=NULL

8. 带头结点的单链表head为空的判定条件是____。

A. head= =NULL

B. head->next= =NULL

C. head->next= =head

D. head!=NULL

9. 非空的循环单链表head的尾结点(由p所指向)满足____。

A. p->next= =NULL

B. p= =NULL

C. p->next= =head

D. p= =head

10. 在双向循环链表的p所指结点之后插入s所指结点的操作是____。

A. p->right=s; s->left=p; p->right->left=s; s->right=p->right;

B. p->right=s; p->right->left=s; s->left=p; s->right=p->right;

C. s->left=p; s->right=p->right; p->right=s; p->right->left=s;

D. s->left=p; s->right=p->right; p->right->left=s; p->right=s;

11. 在一个单链表中,已知q所指结点是p所指结点的前驱结点,若在q和p之间插入s结点,则执行____。

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

B. p->next=s->next; s->next=p;

B. q->next=s; s->next=p;

C. p->next=s; s->next=q;

12. 在一个单链表中,若p所指结点不是最后结点,在p之后插入s所指结点,则执行____。

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

B. s->next=p->next; p->next=s;

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

13. 在一个单链表中,若删除p所指结点的后续结点,则执行____。

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

B. p= p->next; p->next= p->next->next;

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

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

14. 从一个具有n个结点的单链表中查找其值等于x结点时,在查找成功的情况下,需平均比较____个结点。

A. n

B. n/2

C. (n-1)/2

D. (n+1)/2

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

A. O(1)

B. O(n)

C. O (n2)

D. O (nlog2n)

16. 给定有n个元素的向量,建立一个有序单链表的时间复杂度是__ __。

A. O(1))

B. O(n)

C. O (n2)

D. O (n*log2n)

2.2 填空题(将正确的答案填在相应的空中)

1. 单链表可以做__ __的链接存储表示。

2. 在双链表中,每个结点有两个指针域,一个指向____ __,另一个指向___ __。

3. 在一个单链表中p所指结点之前插入一个s (值为e)所指结点时,可执行如下操作:

q=head;

while (q->next!=p) q=q->next;

s= new Node; s->data=e;

q->next= ; //填空

s->next= ; //填空

4. 在一个单链表中删除p所指结点的后继结点时,应执行以下操作:

q= p->next;

p->next= _ ___; //填空

delete ; //填空

5. 在一个单链表中p所指结点之后插入一个s所指结点时,应执行s->next=__ __和p->next=____的操作。

6. 对于一个具有n个结点的单链表,在已知p所指结点后插入一个新结点的时间复杂度是__ __;在给定值为x的结点后插入一个新结点的时间复杂度是__ __。

2.3 算法设计题:

1.设顺序表va中的数据元数递增有序。试写一算法,将x插入到顺序表的适当位置上,以保持该表的有序性。

Status Insert_SqList(SqList &va,int x)

{

if(va.length+1>maxsize) return ERROR;

va.length++;

for(i=va.length-1;va.elem[i]>x&&i>=0;i--)

va.elem[i+1]=va.elem[i];

va.elem[i+1]=x;

return OK;

}

2.试写一算法,实现顺序表的就地逆置,即利用原表的存储空间将线性表(a1, a2,…. a n)逆置为(a n, a n-1,…., a1)。

void reverse(int a[], int size)

{

int i,j,tmp;

for(i=0, j=size-1; i

{

tmp=a[i];

a[i]=a[j];

a[j]=tmp;

}

}

3. 已知线性表中的元素以值递增有序排列,并以单链表作存储结构。试写一算法,删除表中所有大于x且小于y的元素(若表中存在这样的元素)同时释放被删除结点空间。

void del(LinkList L,elemtype a,elemtype b)

{

p= L;q=p->next;

while(q!=L && q->data

{

p=q;

q=q->next;

}

while(q!=L && q->data

{

r=q;

q=q->next;

free(r);

}

if(p!=q)

p->next=q;

}

4. 试写一算法,实现单链表的就地逆置(要求在原链表上进行)。

void converse(NODEPTR L)

{

NODEPTR p,q;

p=L->next; q=p->next;

L->next=NULL;

while(p) /* 对于当前结点p,用头插法将结点p插入到头结点之后 */

{

p->next=L->next;

L->next=p;

p=q;

q=q->next;

}

}

习题答案

2.1 1. B 2. A, C

3. B

4. D

5. C

6. A

7. A

8. B

9. C 10. D 11.B 12.B 13.A 14.D 15.B 16.C

2.2 1. 线性结表 2. 前驱结点、后继结点

3. s, p

4. q->next, q

5. p->next, s

6. O (1) , O (n)

习题3 栈和队列

3.1 单项选择题

1. 一个栈的入栈序列a,b,c,d,e,则栈的不可能的输出序列是____。

A. edcba

B. decba

C. dceab

D. abcde

2. 若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为p1,p2,p3,…,pn,若p1=n,则pi为____。

A. i

B. n=i

C. n-i+1

D. 不确定

3. 栈结构通常采用的两种存储结构是____。

A. 顺序存储结构和链式存储结构

B.散列方式和索引方式

C.链表存储结构和数组

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

4. 判定一个顺序栈ST(最多元素为m0)为空的条件是____。

A. top !=0

B. top= =0

C. top !=m0

D. top= =m0-1

5. 判定一个顺序栈ST(最多元素为m0)为栈满的条件是____。

A. top!=0

B. top= =0

C. top!=m0

D. top= =m0-1

6. 栈的特点是____,队列的特点是____。

A. 先进先出

B. 先进后出

7. 向一个栈顶指针为HS的链栈中插入一个s所指结点时,则执行__ __。

(不带空的头结点)

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;

8. 从一个栈顶指针为HS的链栈中删除一个结点时,用x保存被删结点的值,则执行__ __。(不带空的头结点)

A. x=HS; HS= HS—>next;

B. x=HS—>data;

C. HS= HS—>next; x=HS—>data;

D. x=HS—>data; HS= HS—>next;

9. 一个队列的数据入列序列是1,2,3,4,则队列的出队时输出序列是____ 。

A. 4,3,2,1

B. 1,2,3,4

C. 1,4,3,2

D. 3,2,4,1

10. 判定一个循环队列QU(最多元素为m0)为空的条件是____。

A. rear - front= =m0

B. rear-front-1= =m0

C. front= = rear

D. front= = rear+1

11. 判定一个循环队列QU(最多元素为m0, m0= =Maxsize-1)为满队列的条件是____。

A. ((rear- front)+ Maxsize)% Maxsize = =m0

B. rear-front-1= =m0

C. front= =rear

D. front= = rear+1

12. 循环队列用数组A[0,m-1]存放其元素值,已知其头尾指针分别是front和rear,则当前队列中的元素个数是____。

A. (rear-front+m)%m

B. rear-front+1

C.rear-front-1

D. rear-front

13. 栈和队列的共同点是____。

A. 都是先进后出

B. 都是先进先出

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

D. 没有共同点

3.2 填空题(将正确的答案填在相应的空中)

1. 向量、栈和队列都是____结构,可以在向量的____位置插入和删除元素;对于栈只能在____插入和删除元素;对于队列只能在____插入元素和____删除元素。

2. 向一个长度为n 的向量的第i 个元素(1≤i ≤n+1)之前插入一个元素时,需向后移动____个元素。

3. 向一个长度为n 的向量中删除第i 个元素(1≤i ≤n )时,需向前移动____个元素。

4. 在具有n 个单元的循环队列中,队满时共有____个元素。

习题答案

3.1 1. C 2. C 3. A

4. B

5.D

6. BA

7.C

8. B

9. C 10. C

11. A 12. A 13.C

3.2 1. 线性、任何、栈顶、队尾、队首 2. n-i+1 3. n-i

4. n-1 习题6 树和二叉树 6.1 单项选择题

1. 由于二叉树中每个结点的度最大为2,所以二叉树是一种特殊的树,这种说法____。

A. 正确

B. 错误

2. 假定在一棵二叉树中,双分支结点数为15,单分支结点数为30个,则叶子结点数为 个。 A .15 B .16 C .17 D .47

3. 按照二叉树的定义,具有3个结点的不同形状的二叉树有____种。

A. 3

B. 4

C. 5

D. 6

4. 按照二叉树的定义,具有3个不同数据结点的不同的二叉树有____种。

A. 5

B. 6

C. 30

D. 32

5. 深度为5的二叉树至多有____个结点。

A. 16

B. 32

C. 31

D. 10

6. 设高度为h 的二叉树上只有度为0和度为2的结点,则此类二叉树中所包含的结点数至少为_ ___。

A. 2h

B. 2h-1

C. 2h+1

D. h+1

7. 对一个满二叉树,m 个树叶,n 个结点,深度为h ,则____ 。

A. n=h+m

B. h+m=2n

C. m=h-1

D. n=2 h

-1

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

A.不发生改变

B.发生改变

C.不能确定

D.以上都不对

9. 如果某二叉树的前根次序遍历结果为stuwv ,中序遍历为uwtvs ,那么该二叉树的后序为____。 A. uwvts B. vwuts C. wuvts D. wutsv

10. 二叉树的前序遍历序列中,任意一个结点均处在其子女结点的前面,这种说法____。 A. 正确 B. 错误

11. 某二叉树的前序遍历结点访问顺序是abdgcefh ,中序遍历的结点访问顺序是dgbaechf ,则其后序遍历的结点访问顺序是____。

A. bdgcefha

B. gdbecfha

C. bdgaechf

D. gdbehfca 12. 在一非空二叉树的中序遍历序列中,根结点的右边____。 A. 只有右子树上的所有结点 B. 只有右子树上的部分结点 C. 只有左子树上的部分结点 D. 只有左子树上的所有结点 13. 如图6.1所示二叉树的中序遍历序列是____。

A. abcdgef

B. dfebagc

C. dbaefcg

D. defbagc

14. 一棵二叉树如图6.2__ __。 A. abdgcefh B. dgbaechf D.

abcdefgh

图6.2

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

A .a 在b 的右方

B .a 在b 的左方

C .a 是b 的祖先

D .a 是b 的子孙

16. 已知某二叉树的后序遍历序列是dabec ,中序遍历序列是debac ,它的前序遍历序列是____。 A. acbed B. decab C. deabc D. cedba

17. 实现任意二叉树的后序遍历的非递归算法而不使用栈结构,最佳方案是二叉树采用____存储结构。

A. 二叉链表

B. 广义表存储结构

C. 三叉链表

D. 顺序存储结构 18. 如图6.3所示的4棵二叉树,____不是完全二叉树。

20. 在线索化二叉树中,t 所指结点没有左子树的充要条件是____。

A. t —>left=NULL

B. t —>ltag=1

C. t —>ltag=1且t —>left=NULL

D. 以上都不对

21. 二叉树按某种顺序线索化后,任一结点均有指向其前驱和后续的线索,这种说法____。 A. 正确 B. 错误

22. 二叉树为二叉排序树的充分必要条件是其任一结点的值均大于其左孩子的值、小于其右孩子的值。这种说法____。 A. 正确 B. 错误

23. 具有五层结点的二叉平衡树至少有____个结点。

A. 10

B. 12

C. 15

D. 17

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

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

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

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

D.以上都不对

25. 树最适合用来表示____。

A. 有序数据元素

B. 无序数据元素

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

D. 元素之间无联系的数据 6.2 填空题(将正确的答案填在相应的空中)

1. 有一棵树如图6.5所示,回答下面的问题:

⑴ 这棵树的根结点是____; ⑵ 这棵树的叶子结点是____; ⑶ 结点k3的度是____;

⑷ 这棵树的度是____; ⑸ 这棵树的深度是____;

⑹ 结点k3的子女是____;

⑺ 结点k3的父结点是__

2. 指出树和二叉树的三个主要差别____、____、____。__;

3. 从概念上讲,树与二叉树是两种不同的数据结构,将树转化为二叉树的基本目的是___ _。

4. 一棵二叉树的结点数据采用顺序存储结构,存储于数组t 中,如图6.6所示,则该二叉树的链接表示形式为__ __。

5. 深度为k 的完全二叉树至少有____个结点。至多有____个结点,若按自上而下,从左到右次序给结点编号(从1开

(A) (B) (C) (D)

图6.3

图6.7 一棵二叉树

图6.8 一棵树

始),则编号最小的叶子结点的编号是____。

6. 在一棵二叉树中,度为零的结点的个数为n 0,度为2的结点的个数为 n 2,则有n0=____。

7. 一棵二叉树的第i(i≥1)层最多有____个结点;一棵有n(n>0)个结点的满二叉树共有____个叶子和____个非终端结点。

8. 结点最少的树为____,结点最少的二叉树为____。

9. 现有按中序遍历二叉树的结果为abc,问有____种不同形态的二叉树可以得到这一遍历结果,这些二叉树分别是____。

10. 由如图6.7所示的二叉树,回答以下问题:

⑴其中序遍历序列为____;

⑵其前序遍历序列为____;

⑶其后序遍历序列为____;

6.3 简答题

1. 根据二叉树的定义,具有三个结点的二叉树有5种不同的形态,请将它们分别画出。

2. 假设一棵二叉树的先序序列为EBADCFHGIKJ和中序序列为ABCDEFGHIJK。

请画出该树。

3. 由如图6.7所示的二叉树,回答以下问题:

(1)画出该二叉树的中序线索二叉树;

(2)画出该二叉树的后序线索二叉树;

(3)画出该二叉树对应的森林。

4. 已知一棵树如图6.8所示,转化为一棵二叉树,表示为。

5. 以数据集{4,5,6,7,10,12,18}为结点权值,画出构造Huffman树的每一步图示,计算其带权路径长度为。

6. 一棵含有N个结点的k叉树,可能达到的最大深度和最小深度各为多少?

7. 证明:一棵满k叉树上的叶子结点数n

和非叶子结点数n

1

之间满足以下关系:

n

=(k-1)n

1

+1

6.4 算法设计题

1. 编写按层次顺序(同一层自左至右)遍历二叉树的算法。

2.试编写算法,对一棵二叉树,统计叶子的个数。

3.试编写算法,对一棵二叉树根结点不变,将左、右子树进行交换,树中每个结点的左、右子树进行交换。

7. 假设用于通讯的电文仅有八个字母(a,b,c,d,e,f,g,h)组成,字母在电文中出现的频率分别为0.07, 0.19, 0.02, 0.06, 0.32, 0.03, 0.21, 0.10。试为这八个字母设计哈夫曼编码。

使用0-7的二进制表示形式是另一种编码方案。对于上述实例,比较两种方案的优缺点。

8. 试编写算法,对一棵以孩子-兄弟链表表示的树统计叶子的个数。假设一棵二叉树的先序序列为EBADCFHGIKJ和中序序列为ABCDEFGHIJK。请画出该树。

习题答案

6.1 1. B 2. B 3. C 4. C 5. C 6. A

7. D

8. A

9. C 10. A

11. D 2. A 13. B 14. B 15. B 16. D 17. C 18. C

19. B 20. B 21. B 22. B 23. B 24. A 25. C

6.2

1. ⑴ k1 ⑵ k2,k5,k7,k4 ⑶ 2 ⑷ 3 ⑸ 4 ⑹ k5,k6 ⑺ k1

2. 树的结点个数至少为1(不同教材规定不同),而二叉树的结点个数可以为0;

树中结点的最大度数没有限制,而二叉树结点的最大度数为2;

树的结点无左、右之分,而二叉树的结点有左、右之分;

3. 树可采用孩子-兄弟链表(二叉链表)做存储结构,目的并利用二叉树的已有算法解

决树的有关问题。

4. 如图6.9所示

图 6.15 一棵树的孩子兄弟表

5. 2 k-1 、 2 k -1 、 2 k-2

+1 6. n 2+1

7. 2 i-1 2[log 2n+1]-1 2[log 2n+1]

–1 8. 只有一个结点的树;空的二叉树

9. 5;如图6.10所示

10. dgbaechif 、、 6.3 1. 5种, 图6.11

2. 二叉树如图6.12所示。

3. 中序线索二叉树如图6.13线索二叉树如图6.13(右)所示;

该二叉树转换后的的森林如图6.14所示。

5. 画出构造Huffman 树如图

6.16所示,计算其带权路径长度为 。

6. 一棵含有N 个结点的k 叉树,可能达到的最大深度 h=N-k+1 ,

最小深度各为: log k N+1。

习题7 图

7.1 单项选择题

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

A. 1/2

B. 1

C. 2

D. 4

2.任何一个无向连通图的最小生成树。

A.只有一棵

B.有一棵或多棵

C.一定有多棵

D.可能不存在

3.在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的____倍。

A. 1/2

B. 1

C. 2

D. 4

4.一个有n个顶点的无向图最多有____条边。

A. n

B. n(n-1)

C. n(n-1)/2

D. 2n

5.具有4个顶点的无向完全图有____条边。

A. 6

B. 12

C. 16

D. 20

6.具有6个顶点的无向图至少应有____条边才能确保是一个连通图。

A. 5

B. 6

C. 7

D. 8

7.在一个具有n个顶点的无向图中,要连通全部顶点至少需要____条边。

A. n

B. n+1

C. n-1

D. n/2

8.对于一个具有n个顶点的无向图,若采用邻接矩阵表示,则该矩阵的大小是____。

A. n

B. (n-1)2

C. n-1

D. n2

9.对于一个具有n个顶点和e条边的无向图,若采用邻接表表示,则表头向量的大小为_①___;所有邻接表中的接点总数是_②___。

① A. n B. n+1 C. n-1 D. n+e

② A. e/2 B. e C.2e D. n+e

10.已知一个图如图7.1所示,若从顶点a出发按深度搜索法进行遍历,则可能得到

的一种顶点序列为__①__;按宽度搜索法进行遍历,则可能得到的一种顶点序列

为__②__。

① A. a,b,e,c,d,f B. e,c,f,e,b,d C. a,e,b,c,f,d D. a,e,d,f,c,b

图 7.1 一个无向图

11.已知一有向图的邻接表存储结构如图7.2所示。

⑴ 根据有向图的深度优先遍历算法,从顶点v1出发,所得到的顶点序列是____。

A. v1,v2,v3,v5,v4

B. v1,v2,v3,v4,v5

C. v1,v3,v4,v5,v2

D. v1,v4,v3,v5,v2

⑵ 根据有向图的宽度优先遍历算法,从顶点v1出发,所得到的顶点序列是____。

A. v1,v2,v3,v4,v5

B. v1,v3,v2,v4,v5

C. v1,v2,v3,v5,v4

D. v1,v4,v3,v5,v2

12.采用邻接表存储的图的深度优先遍历算法类似于二叉树的____。

A. 先序遍历

B. 中序遍历

C. 后序遍历

D. 按层遍历 13.采用邻接表存储的图的宽度优先遍历算法类似于二叉树的____。

A. 先序遍历

B. 中序遍历

C. 后序遍历

D. 按层遍历

14.判定一个有向图是否存在回路除了可以利用拓扑排序方法外,还可以利用____。

A. 求关键路径的方法

B. 求最短路径的Dijkstra 方法

C. 宽度优先遍历算法

D. 深度优先遍历算法 15.关键路径是事件结点网络中

A.从源点到汇点的最长路径

B.从源点到汇点的最短路径

C.最长的回路

D.最短的回路 16.下面不正确的说法是 。

(1)在AOE 网中,减小一个关键活动上的权值后,整个工期也就相应减小; (2)AOE 网工程工期为关键活动上的权之和;

(3)在关键路径上的活动都是关键活动,而关键活动也必在关键路径上。

A.(1)

B.(2)

C.(3)

D.(1)、(2)

17.用DFS 遍历一个无环有向图,并在DFS 算法退栈返回时打印出相应的顶点,则输出的顶点序列是 。

A.逆拓朴有序的

B.拓朴有序的

C.无序的 18.在图7.3所示的拓朴排列的结果序列为 。

A.125634

B.516234

C.123456

D.521634

19.一个有n 个顶点的无向连通图,它所包含的连通分量个数为 。

A.0

B.1

C.n

D.n+1

20.对于一个有向图,若一个顶点的入度为k1,、出度为k2,则对应邻接表中该顶点单链表中的结点数为 。

A.k1

B.k2

C.k1-k2

D.k1+k2

21.对于一个有向图,若一个顶点的入度为k1,、出度为k2,则对应逆邻接表中该顶点单链表中的结点数为 。

A.k1

B.k2

C.k1-k2

D.k1+k2

7.2 填空题(将正确的答案填在相应饿空中)

1.n 个顶点的连通图至少____条边。 2.在无权图G 的邻接矩阵A 中,若(vi,vj)或<vi,vj

>属于图G 的边集合,则对应元素A[i][j]等于____,否则等于____。 3.在无向图G 的邻接矩阵A 中,若A[i][j]等于1,则A[j][i ]等于____。

4.已知图G 的邻接表如图7.4所示,其从顶点v1出发的深度有限搜索序列为____,其从顶点v1出发的宽度优先搜索序列为____。

图7.2 一个有向图的邻接表存储结构

图7.3有向图

图7.4 图G的邻接表

5.已知一个有向图的邻接矩阵表示,计算第i个结点的入度的方法是____。

6.已知一个图的邻接矩阵表示,删除所有从第i个结点出发的边的方法是____。

7.如果含n个顶点的图形成一个环,则它有棵生成树。

8.一个非连通无向图,共有28条边,则该图至少有个顶点。

9.遍历图的过程实质上是。BFS遍历图的时间复杂度为,DFS遍历图的时间复杂度为,两者不同之处在于,反映在数据结构上的差别是。

10.一个图的表示法是唯一的,而表示法是不唯一的。

11.有向图中的结点前驱后继关系的特征是。

12.若无向图G的顶点度数最小值大于等于时,G至少有一条回路。

13.根据图的存储结构进行某种次序的遍历,得到的顶点序列是的。

7.3 综合题

1.已知如图7.5所示的有向图,请给出该图的: (1)每个顶点的入/出度;

(2)邻接距阵;

(3)邻接表;

(4)逆邻接表;

(5)强连通分量。

2

(1)

图7.6 (2

3.试列出图7.8中全部的拓扑排序序列。

4.请用图示说明图7.9从顶点a到其余各顶点之间的最短路径。

5.已知AOE网有9个结点:V1,V2,V3,V4,V5,V6,V7,V8,V9,其邻接矩阵如下:

(1)请画出该AOE图。

(2)计算完成整个计划需要的时间。

习题答案

7.1 1. C 2.B 3.B 4. C 5. A 6. A 7.C

8.D 9. AC 10.DB 11. CB 12. A 13. D 14.D 15.A

16.A 17.A 18.B 19.B 20.B 21.A

7.2 1.n-1 2. 1;0 3. 1

4.v1,v2,v3,v6,v5, v4;v1,v2,v5,v4,v3, v6

5.求矩阵第i列非零元素之和

6. 将矩阵第i行全部置为零

7.n

8.9

9.对每个顶点查找其邻接点的过程;O(e)(e为图中的边数);O(e);

遍历图的顺序不同;DFS采用栈存储访问过的结点,BFS采用队列存储访问过

的结点。

10.邻接矩阵 邻接表

11.一个结点可能有若干个前驱,也可能有若干个后继 12.2 13.唯一

7.3 1.

2.

(1).

(2)

3.

512634 4.

5.(2)完成整个计划需要18天。 (3)关键路径为:(V1,V2,V5,V7,V9)和(V1,V2, V5,V8,V9,)

习题8 查找

8.1 单项选择题

1.顺序查找法适合于存储结构为____的线性表。

A. 散列存储

B. 顺序存储或链接存储

C. 压缩存储

D. 索引存储

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

A. 以顺序方式存储

B. 以链接方式存储

C. 以顺序方式存储,且结点按关键字有序排序

D. 以链接方式存储,且结点按关键字有序排序

3.采用顺序查找方法查找长度为n的线性表时,每个元素的平均查找长度为____.

A. n

B. n/2

C. (n+1)/2

D. (n-1)/2

4.采用二分查找方法查找长度为n的线性表时,每个元素的平均查找长度为____。

A.O(n2) B. O(nlog2n) C. O(n) D. O(log2n)

5.二分查找和二叉排序树的时间性能____。

A. 相同

B. 不相同

6.有一个有序表为{1,3,9,12,32,41,45,62,75,77,82,95,100},当二分查找值82为的结点时,____次比较后查找成功。

A. 1

B. 2

C. 4

D. 8

7.设哈希表长m=14,哈希函数H(key)=key%11。表中已有4个结点:

addr (15)=4; addr (38)=5; addr (61)=6; addr (84)=7

如用二次探测再散列处理冲突,关键字为49的结点的地址是____。

A. 8

B. 3

C. 5

D. 9

8.有一个长度为12的有序表,按二分查找法对该表进行查找,在表内各元素等概率情况下查找成功所需的平均比较次数为____。

A. 35/12

B. 37/12

C. 39/12

D. 43/12

9.对于静态表的顺序查找法,若在表头设置岗哨,则正确的查找方式为。

A.从第0个元素往后查找该数据元素

B.从第1个元素往后查找该数据元素

C.从第n个元素往开始前查找该数据元素

D.与查找顺序无关

10.解决散列法中出现的冲突问题常采用的方法是。

A.数字分析法、除余法、平方取中法

B.数字分析法、除余法、线性探测法

C.数字分析法、线性探测法、多重散列法

D.线性探测法、多重散列法、链地址法

11.采用线性探测法解决冲突问题,所产生的一系列后继散列地址。

A.必须大于等于原散列地址

B.必须小于等于原散列地址

C.可以大于或小于但不能等于原散列地址

D.地址大小没有具体限制

12.对于查找表的查找过程中,若被查找的数据元素不存在,则把该数据元素插入到集合中。这种方式主要适合于。

A.静态查找表

B.动态查找表

C.静态查找表与动态查找表D两种表都不适合

13.散列表的平均查找长度。

A.与处理冲突方法有关而与表的长度无关

B.与处理冲突方法无关而与表的长度有关

C.与处理冲突方法有关而与表的长度有关

D.与处理冲突方法无关而与表的长度无关

8.2 填空题(将正确的答案填在相应的空中)

1.顺序查找法的平均查找长度为____;折半查找法的平均查找长度为____;哈希表查找法采用链接法处理冲突时的平均

查找长度为____。

2.在各种查找方法中,平均查找长度与结点个数n无关的查找方法是____。

3.折半查找的存储结构仅限于____,且是____。

4. 假设在有序线性表A[1..20]上进行折半查找,则比较一次查找成功的结点数为____,则比较二次查找成功的结点数为____,则比较三次查找成功的结点数为____,则比较四次查找成功的结点数为____,则比较五次查找成功的结点数为____,平均查找长度为____。

5. 对于长度为n的线性表,若进行顺序查找,则时间复杂度为____;若采用折半法查找,则时间复杂度为____;

6.已知有序表为(12,18,24,35,47,50,62,83,90,115,134),当用折半查找90时,需进行次查找可确定成功;查找47时,需进行次查找成功;查找100时,需进行次查找才能确定不成功。

7.二叉排序树的查找长度不仅与有关,也与二叉排序树的有关。

8.一个无序序列可以通过构造一棵树而变成一个有序树,构造树的过程即为对无序序列进行排序的过程。

9.平衡二叉排序树上任一结点的平衡因子只可能是、或。

10.法构造的哈希函数肯定不会发生冲突。

11.在散列函数H(key)=key%p中,p应取____。

12.在散列存储中,装填因子α的值越大,则____;α的值越小,则____。

8.3 综合练习题:

1. 画出对长度为10的有序表进行折半查找的判定树,并求其等概率时查找成功的平均查找长度。

4. 选取哈稀函数H(k)=(3k)MOD 11。用开放定址法处理冲突,di=i((7k)MOD 10+1)(I=1,2,3,…).试在0-10的散列地址空间中对关键字序列(22,41,53,46,30,13,01,67)造哈希表,并求等概率情况下查找成功时的平均查找长度。

5. 已知一组关键字{49,38,65,97,76,13,27,44,82,35,50},画出由此生成的二叉排序树,注意边插入边平衡。

习题答案

8.1 1.B 2.C 3.C 4.D 5.B 6.C 7.D 8.B

9.C 10.D 11.C 12.B 13.C

8.2 1. (n+1)/2 、((n+1)*log2(n+1))/n-1 、1+α(α为装填因子)

2. 哈希表查找法

3. 顺序存储结构、有序的

4. 1、2、4、8、5、3.7

(依题意,构造一棵有序二叉树,共12个结点,第一层1个结点,第二层2个结点,第三层4个结点,第四层5个结点,则:ASL=(1*1+2*2+3*4+4*5)/12=37/12)

5. O(n)、O(log2n)

6.2、4、3

7.结点个数n、生成过程

8.二叉排序树

9.0、1、-1

10.直接定址

11.素数

12.存取元素时发生冲突的可能性就越大、存取元素时发生冲突的可能性就越小

习题9 排序

9.1 单项选择题

1. 在所有排序方法中,关键字比较的次数与记录的初始排列次序无关的是____。

A. 希尔排序

B. 起泡排序

C. 插入排序

D. 选择排序

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

A. 起泡排序

B. 快速排序

C. 堆排序

D. 基数排序

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

A. 插入排序

B. 选择排序

C. 快速排序

D. 归并排序

4. 一组记录的排序码为(46,79,56,38,40,84),则利用堆排序的方法建立的初始堆为____。

A. 79,46,56,38,40,80

B. 38,46, 56,79, 40,84,

C. 84,79,56,46,40,38

D. 84,56,79,40,46,38

5. 一组记录的关键码为(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

6. 一组记录的排序码为(25,48,16,35,79,82,23,40,36,72),其中含有5个长度为2的有序表,按归并排序的方法对该序列进行一趟归并后的结果为____。

A. 16,25,35,48,23,40,79,82,36,72

B. 16,25,35,48,79,82,23,36,40,72

C. 16,25,48,35,79,82,23,36,40,72

D. 16,25,35,48,79,23,36,40,72,82

7. 排序方法中,从未排序序列中依次取出元素与已排序序列(初始时为空)中的元素进行比较,将其放入已排序序列的正确位置上的方法,称为____。

A. 希尔排序

B. 起泡排序

C. 插入排序

D. 选择排序

8. 排序方法中,从未排序序列中挑选元素,并将其依次放入已排序序列(初始时为空)的一端的方法,称为____。

A. 希尔排序

B. 归并排序

C. 插入排序

D. 选择排序

9. 用某种排序方法对线性表( 25,84,21,47,15,27,68,35,20)进行排序时,元素序列的变化情况如下:

⑴ 25,84,21,47,15,27,68,35,20

⑵ 20,15,21,25,47,27,68,35,84

⑶ 15,20,21,25,35,27,47,68,84

⑷ 15,20,21,25,27,35,47,68,84

则所采用的排序方法是____。

A. 选择排序

B. 希尔排序

C. 归并排序

D. 快速排序

10. 下述几种排序方法中,平均查找长度最小的是____。

A. 插入排序

B. 选择排序

C. 快速排序

D. 归并排序

11. 下述几种排序方法中,要求内存量最大的是____。

A. 插入排序

B. 选择排序

C. 快速排序

D. 归并排序

12. 快速排序方法在____情况下最不利于发挥其长处。

A. 要排序的数据量太大

B. 要排序的数据中含有多个相同值

C. 要排序的数据已基本有序

D. 要排序的数据个数为奇数

9.2 填空题(将正确的答案填在相应的空中)

1. 在对一组记录(54,38,96,23,15,72,60,45,83)进行直接插入排序时,当把第7个记录60插入到有序表时,为寻找插入位置需比较____。

2. 在利用快速排序方法对一组记录(54,38,96,23,15,72,60,45,83)进行快速排序时,递归调用而使用的栈所能达到的最大深度为____,共需递归调用的次数为____,其中第二次递归调用是对____一组记录进行快速排序。

3. 在堆排序,快速排序和归并排序中,若只从存储空间考虑,则应首先选取____方法,其次选取____方法,最后选取____方法;若只从排序结果的稳定性考虑,则应选取____方法;若只从平均情况下排序最快考虑,则应选取____方法;若只从最坏情况下排序最快并且要节省内存考虑,则应选取____方法。

4. 在插入排序、希尔排序、选择排序、快速排序、堆排序、归并排序和基数排序中,排序是不稳定的有____。

5. 在在插入排序、希尔排序、选择排序、快速排序、堆排序、归并排序和基数排序中,平均比较次数最少的排序是____,需要内存容量最多的是____。

6. 在堆排序和快速排序中,若原始记录接近正序或反序,则选用____,若原始记录无序,则最好选用____。

7. 在插入和选择排序中,若初始数据基本正序,则选用____;若初始数据基本反序,则选用____。

8. 对n个元素的序列进行起泡排序时,最少的比较次数是____。

9.3 综合题

1. 以关键码序列(503,087,512,061,908,170,897,275,653,426),为例,手工执行以下排序算法,写出每一趟排序结束时的关键码状态:

(1)直接插入排序;

(2)希尔排序(增量d[1]=5);

(3)快速排序;

(4)堆排序;

(5)归并排序;

(6)基数排序。

2. 判别以下序列是否为堆(小顶堆或大顶堆)。如果不是,则把它调整为堆(要求记录交换次数最少)。

(1)(100,86,48,73,35,39,42,57,66,21);

(2)(12,70,33,65,24,56,48,92,86,33)

(3)(103,97,56,38,66,23,42,12,30,52,06,20)

(4)(05,56,20,23,40,38,29,61,35,76,28,100).

习题答案

9.1 1. D 2. C 3. A 4. B 5. C 6. A 7. C 8. D 9.D

10. C 11. D 12. C

9.2 1. 5

2. 2; 4; (23,38,15)

3. 堆排序、快速排序、归并排序、归并排序、快速排序、堆排序

4. 希尔排序、选择排序、快速排序和堆排序

5. 快速排序、基数排序

6. 堆排序、快速排序

7. 插入排序、选择排序

8. n-1

数据结构考试试题及答案

数据结构 一、单选题 1. 计算机算法指的是(b )。 A.程序B.问题求解步骤的描述C.调度方法D.排序方法 2. 以下数据结构中,(a )个是非线性数据结构。 A.树B.字符串C.队D.栈 3. 对于顺序存储的线性表,访问元素和插入元素的时间复杂度分别为:(c )。 A.O(n) O(n) B.O(n) O(1) C.O(1) O(n) D.O(1) O(1) 4. 在单链表指针为p的结点之后插入指针为s的结点,正确的操作是(b )。 A.p->next=s;s->next=p->next B.s->next=p->next; p->next=s C.p->next=s;p->next=s->next D.p->next=s->next; p->next=s 5. n个顶点的有向图中,含有向边的数目最多为( d ) A.n-1 B.n C.n(n-1)/2 D.n(n-1) 6. 循环队列存储在数组A[0..m]中,则入队时的操作为( d ) A.rear=rear+1 B.rear=(rear+1)mod(m-1) C.rear=(rear+1)mod m D.rear=(rear+1)mod(m+1) 7. 字符串?ababaabab?的next函数为(d ) A.011232232 B.012341234 C.011122334 D. 011234234 8. 若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数为( b )A.9 B.11 C.15 D.不确定 9. 设有数组A[i,j],数组的每个元素长度为3字节,i的值为1到8,j的值为1到10,数组从内存首地址BA开始顺序存放,当以列为主序存放时,元素A[5,8]的首地址为( b )。A.BA+141 B.BA+180 C.BA+222 D.BA+225 10. n个顶点的带权无向连通图的最小生成树包含(b )个顶点 A.n-1 B.n C.n/2 D.n+1 11.有关二叉树的下列说法正确的是( b ) A.二叉树的度为2 B.一棵二叉树的度可以小于2 C.二叉树中至少有一个结点的度为2 D.二叉树中任何一个结点的度都为2 12.关键路径是AOE网中( a )。 A.从源点到汇点的最长路径B.从源点到汇点的最短路径 C.最长回路 D.最短路径(从源点到汇点的所有路径中,经过弧的数目最多的路径) 13.若查找每个记录的概率相等,则在具有n个记录的连续文件中采用顺序查找查找一个记录,其平均查找长度ASL为(c)。 A.(n-1)/2 B.n/2 C.(n+1)/2 D.n 14.就平均性能而言,目前最好的内部排序方法是(d ) A.冒泡排序B.希尔排序C.堆排序D.快速排序 15.已知广义表LS=((a,b,c),(d,e,f)),运用head和tail函数取出LS中原子e的运算是(d )A.head(tail(LS)) B.tail (head (LS) C.head(tail(head(tail(LS)))) D.head(tail(tail (head (LS)))) 17.在n个结点的顺序表中,算法的时间复杂度是O(1)的操作是:( a ) A. 访问第i个结点(1≤i≤n)和求第i个结点的直接前驱(2≤i≤n) B. 在第i个结点后插入一个新结点(1≤i≤n)

2017年数据结构期末考试题及答案A

2017年数据结构期末考试题及答案 一、选择题(共计50分,每题2分,共25题) 1 ?在数据结构中,从逻辑上可以把数据结构分为 C 。 A. 动态结构和静态结构B?紧凑结构和非紧凑结构 C.线性结构和非线性结构 D .内部结构和外部结构 2?数据结构在计算机内存中的表示是指 A ° A. 数据的存储结构 B.数据结构 C.数据的逻辑结构 D .数据元 素之间的关系 3.在数据结构中,与所使用的计算机无关的是数据的 A 结构。 A. 逻辑B?存储 C.逻辑和存储 D.物理 4 .在存储数据时,通常不仅要存储各数据元素的值,而且还要存储 C ° A.数据的处理方法B?数据元素的类型 C.数据元素之间的关系 D.数据的存储方法 5. 在决定选取何种存储结构时,一般不考虑 A ° A.各结点的值如何B?结点个数的多少 C?对数据有哪些运算 D.所用的编程语言实现这种结构是否方便。 6. 以下说法正确的是D ° A. 数据项是数据的基本单位 B. 数据元素是数据的最小单位 C. 数据结构是带结构的数据项的集合 D. —些表面上很不相同的数据可以有相同的逻辑结构 7. 在以下的叙述中,正确的是B ° A. 线性表的顺序存储结构优于链表存储结构 B. 二维数组是其数据元素为线性表的线性表 C?栈的操作方式是先进先出 D.队列的操作方式是先进后出

8. 通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着 A. 数据元素具有同一特点 B. 不仅数据元素所包含的数据项的个数要相同,而且对应的数据项的类型要一致 C. 每个数据元素都一样 D. 数据元素所包含的数据项的个数要相等 9 ?链表不具备的特点是 A 。 A.可随机访问任一结点 B.插入删除不需要移动元素 C?不必事先估计存储空间 D.所需空间与其长度成正比 10. 若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一 个结点,则采用 D 存储方式最节省运算时间。 A.单链表B ?给出表头指针的单循环链表 C.双链表D ?带头结点 的双循环链表 11. 需要分配较大空间,插入和删除不需要移动元素的线性表,其存储结构是 B 。 A.单链表B .静态链表 C.线性链表 D .顺序存储结构 12 .非空的循环单链表head的尾结点(由p所指向)满足C 。 A. p—>next 一NULL B. p — NULL C. p—>next == head D. p = = head 13 .在循环双链表的p所指的结点之前插入s所指结点的操作是 D 。 A .p—> prior-> prior=s B .p—> prior-> n ext=s C.s —> prior—> n ext = s D.s —> prior—> prior = s 14 .栈和队列的共同点是C 。 A.都是先进后出 B .都是先进先出 C.只允许在端点处插入和删除元素 D .没有共同点

《数据结构》期末考试试题及答案

数据结构》期末考试试题及答案 ( 2003-2004 学年第 2 学期 ) 单项选择题 1、C 2、D 3、A 4、D 5、C 6、D 7、A 8、B 9、C 10、C 7.图的 Depth-First Search (DFS ) 遍历思想实际上是二叉树( 法的推广。 (A )、先序 ( B )、中序 (C )、后序 (D )、层序 8.在下列链队列 Q 中,元素 a 出队的操作序列为( p=Q.front->next; p->next= Q.front->next; p=Q.front->next; Q.front->next=p->next; p=Q.rear->next; p->next= Q.rear->next; p=Q->next; Q->next=p->next; 9. Huffman 树的带权路径长度 WPL 等于( c ( A )、除根结点之外的所有结点权值之和1.对于一个算法,当输入非法数据时,也要能作出相应的处理,这种要求称为 ( c )。 (A ) 、正确性 (B ). 可行性 (C ). 健壮性 2.设 S 为 C 语言的语句 ,计算机执行下面算法时, for (i=n-1 ; i>=0 ; i--) for (j=0 ;j

数据结构考试题库

数据结构考试题库

绪论 一、填空题 1.数据的逻辑结构被分为集合、(线性结构)、(树形结构)和(图状结构)四种。 2.物理结构是数据结构在计算机中的表示,又称为(存储结构)。 3.数据元素的逻辑结构包括( 线性)、(树)和图状结构3种类型,树形结构和图状结构合称为(非线性结构)。 4.(数据元素)是数据的基本单位,(数据项)是数据不可分割的最小单位。 5.线性结构中元素之间存在(一个对一个)关系,树形结构中元素之间存在(一个对多个)关系,图状结构中元素之间存在(多个对多个)关系。 ?6.数据结构是一门研究非数值计算的程序设计问题中:计算机的(数据元素)以及它们之间的(关系)和(运筹)等的学科。 7.算法的五个重要特性为有穷性、确定性、(输入)、(输出)和(可行性)。 二、选择题 1.数据的不可分割的基本单位是(D)。 A.元素 B.结点 C.数据类型 D.数据项 *2.线性表的逻辑顺序与存储顺序总是一致的,这种说法(B)。 A.正确 B.不正确 C.不确定 D.无法选择 3.线性结构是指数据元素之间存在一种(D)。 精心整理,用心做精品2

A.一对多关系 B.多对多关系 C.多对一关系 D.一对一关系 4.在数据结构中,从逻辑上可以把数据结构分成(A)。 A.动态结构和静态结构 B.紧凑结构和非紧凑结构 C.线性结构和非线性结构 D.内部结构和外部结构 5.线性表若采用链式存储结构时,要求内存中可用存储单元的 地址( D)。 A.必须是连续的 B.部分地址必须是连续的 C.一定是不连续的 D.连续不连续都可以 三、简答题 1.算法的特性是什么。 答:有穷性确定性可行性有0或多个输入有1或多个输出线性结构 一、填空题 1.在一个长度为n的线性表中删除第i个元素(1≤i≤n)时,需向前移动(n-i)个元素。 2.从循环队列中删除一个元素时,其操作是(先移动队首指针,后取出元素)。 3.在线性表的单链接存储中,若一个元素所在结点的地址为p,则其后继结点的地址为(p->next)。 4.在一个单链表中指针p所指向结点的后面插入一个指针q所指向的结点时,首先把(p->next)的值赋给q->next,然后(q->date)的值赋给p->next。 5.从一个栈删除元素时,首先取出(栈顶元素),然后再使(栈顶指针)减1。 6.子串的定位操作通常称做串的(模式匹配)。 精心整理,用心做精品3

数据结构课后习题答案清华大学出版社殷人昆

1-1什么是数据? 它与信息是什么关系? 【解答】 什么是信息?广义地讲,信息就是消息。宇宙三要素(物质、能量、信息)之一。它是现实世界各种事物在人们头脑中的反映。此外,人们通过科学仪器能够认识到的也是信息。信息的特征为:可识别、可存储、可变换、可处理、可传递、可再生、可压缩、可利用、可共享。 什么是数据?因为信息的表现形式十分广泛,许多信息在计算机中不方便存储和处理,例如,一个大楼中4部电梯在软件控制下调度和运行的状态、一个商店中商品的在库明细表等,必须将它们转换成数据才能很方便地在计算机中存储、处理、变换。因此,数据(data)是信息的载体,是描述客观事物的数、字符、以及所有能输入到计算机中并被计算机程序识别和处理的符号的集合。在计算机中,信息必须以数据的形式出现。 1-2什么是数据结构? 有关数据结构的讨论涉及哪三个方面? 【解答】 数据结构是指数据以及相互之间的关系。记为:数据结构= { D, R }。其中,D是某一数据对象,R是该对象中所有数据成员之间的关系的有限集合。 有关数据结构的讨论一般涉及以下三方面的内容: ①数据成员以及它们相互之间的逻辑关系,也称为数据的逻辑结构,简称为数据结构; ②数据成员极其关系在计算机存储器内的存储表示,也称为数据的物理结构,简称为存储结构; ③施加于该数据结构上的操作。 数据的逻辑结构是从逻辑关系上描述数据,它与数据的存储不是一码事,是与计算机存储无关的。因此,数据的逻辑结构可以看作是从具体问题中抽象出来的数据模型,是数据的应用视图。数据的存储结构是逻辑数据结构在计算机存储器中的实现(亦称为映像),它是依赖于计算机的,是数据的物理视图。数据的操作是定义于数据逻辑结构上的一组运算,每种数据结构都有一个运算的集合。例如搜索、插入、删除、更新、排序等。 1-3数据的逻辑结构分为线性结构和非线性结构两大类。线性结构包括数组、链表、栈、 队列、优先级队列等; 非线性结构包括树、图等、这两类结构各自的特点是什么? 【解答】 线性结构的特点是:在结构中所有数据成员都处于一个序列中,有且仅有一个开始成员和一个终端成员,并且所有数据成员都最多有一个直接前驱和一个直接后继。例如,一维数组、线性表等就是典型的线性结构 非线性结构的特点是:一个数据成员可能有零个、一个或多个直接前驱和直接后继。例如,树、图或网络等都是典型的非线性结构。 1-4.什么是抽象数据类型?试用C++的类声明定义“复数”的抽象数据类型。要求 (1) 在复数内部用浮点数定义它的实部和虚部。 (2) 实现3个构造函数:缺省的构造函数没有参数;第二个构造函数将双精度浮点数赋给复数的实部,虚部置为0;第三个构造函数将两个双精度浮点数分别赋给复数的实部和虚部。 (3) 定义获取和修改复数的实部和虚部,以及+、-、*、/等运算的成员函数。

数据结构C语言版期末考试试题(有答案)

“数据结构”期末考试试题 一、单选题(每小题2分,共12分) 1.在一个单链表HL中,若要向表头插入一个由指针p指向的结点,则执行( )。 A. HL=ps p一>next=HL B. p一>next=HL;HL=p3 C. p一>next=Hl;p=HL; D. p一>next=HL一>next;HL一>next=p; 2.n个顶点的强连通图中至少含有( )。 A.n—l条有向边 B.n条有向边 C.n(n—1)/2条有向边 D.n(n一1)条有向边 3.从一棵二叉搜索树中查找一个元素时,其时间复杂度大致为( )。 A.O(1) B.O(n) C.O(1Ogzn) D.O(n2) 4.由权值分别为3,8,6,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为( )。 A.24 B.48 C. 72 D. 53 5.当一个作为实际传递的对象占用的存储空间较大并可能需要修改时,应最好把它说明为( )参数,以节省参数值的传输时间和存储参数的空间。 A.整形 B.引用型 C.指针型 D.常值引用型· 6.向一个长度为n的顺序表中插人一个新元素的平均时间复杂度为( )。 A.O(n) B.O(1) C.O(n2) D.O(10g2n) 二、填空题(每空1分,共28分) 1.数据的存储结构被分为——、——、——和——四种。 2.在广义表的存储结构中,单元素结点与表元素结点有一个域对应不同,各自分别为——域和——域。 3.——中缀表达式 3十x*(2.4/5—6)所对应的后缀表达式为————。 4.在一棵高度为h的3叉树中,最多含有——结点。 5.假定一棵二叉树的结点数为18,则它的最小深度为——,最大深度为——· 6.在一棵二叉搜索树中,每个分支结点的左子树上所有结点的值一定——该结点的值,右子树上所有结点的值一定——该结点的值。 7.当向一个小根堆插入一个具有最小值的元素时,该元素需要逐层——调整,直到被调整到——位置为止。 8.表示图的三种存储结构为——、——和———。 9.对用邻接矩阵表示的具有n个顶点和e条边的图进行任一种遍历时,其时间复杂度为——,对用邻接表表示的图进行任一种遍历时,其时间复杂度为——。 10.从有序表(12,18,30,43,56,78,82,95)中依次二分查找43和56元素时,其查找长度分别为——和——· 11.假定对长度n=144的线性表进行索引顺序查找,并假定每个子表的长度均

数据结构期末考试试题及答案

数据结构期末考试试题及答案 、选择题 评价一个算法时间性能的主要标准是()。1. A、算法易于调试 B、算法易于理解 C、算法的稳定性和正确性 D、算法的时间复杂度 )等五个特性。计算机算法具备有输入、输出、 2. A、可行性、可移植性和可扩充性 B、可行性、确定性和有穷性 C、确定性、有穷性和稳定性 D、XX、稳定性和XX 。带头结点的单链表head为空的判定条件是()3. A、h ead==NULL B、h ead->next==NULL C、head->next==head D、head!=NULL 以下关于线性表的说法不正确的是()。4. A、线性表中的数据元素可以是数字、字符、记录等不同类型。 B、线性表中包含的数据元素个数不是任意的。

C、线性表中的每个结点都有且只有一个直接前趋和直接后继。 D、存在这 样的线性表:表中各结点都没有直接前趋和直接后继。 在顺序表中,只要知道(),就可在相同时间内求出任一结点的存储地址。 5.A、基地址 B、结点大小 C、向量大小 D、基地址和结点大小 ()运算中,使用顺序表比链表好。6. A、插入 B、删除 C、根据序号查找 D、根据元素值查找一个长度为n的顺序表中,向第i个元素之前插入一个新元素时,需要向后移动()个元素7.A、n-i B、n-i+1 C、n-i-1 D、i ()适合作为经常在首尾两端操作线性表的存储结构。8. A、顺序表 B、单链表 C、循环链表 D、双向链表

栈和队列的共同点是() 9. A、都是先进后出 B、都是先进先出 C、只允许在端点处插入和删除元素 D、没有共同点 一个队列的入列序列是1234,则队列的输出序列是()。10. A 、4321 B 、12 3 4 C 、1432 D 、 3241队列与一般的线性表的区别在于()。11. A、数据元素的类型不同 B、运算是否受限制 C、数据元素的个数不同 D、逻辑结构不同 假上溢”现象会出现在()中。12. A、循环队列 B、队列 C、链队列 、顺序队列D.二、填空

数据结构复习资料,java数据结构期末考试

第二章算法分析 1.算法分析是计算机科学的基础 2.增长函数表示问题(n)大小与我们希望最优化的值之间的关系。该函数表示了该算法的时间复杂度或空间复杂度。增长函数表示与该问题大小相对应的时间或空间的使用 3.渐进复杂度:随着n的增加时增长函数的一般性质,这一特性基于该表达式的主项,即n 增加时表达式中增长最快的那一项。 4.渐进复杂度称为算法的阶次,算法的阶次是忽略该算法的增长函数中的常量和其他次要项,只保留主项而得出来的。算法的阶次为增长函数提供了一个上界。 5.渐进复杂度:增长函数的界限,由增长函数的主项确定的。渐进复杂度类似的函数,归为相同类型的函数。 6.只有可运行的语句才会增加时间复杂度。 7. O() 或者大O记法:与问题大小无关、执行时间恒定的增长函数称为具有O(1)的复杂度。 增长函数阶次 t(n)=17 O(1) t(n)=3log n O(log n) t(n)=20n-4 O(n) t(n)=12n log n + 100n O(n log n) t(n)=3n2+ 5n - 2 O(n2) t(n)=8n3+ 3n2O(n3) t(n)=2n+ 18n2+3n O(2n) 8.所有具有相同阶次的算法,从运行效率的角度来说都是等价的。 9.如果算法的运行效率低,从长远来说,使用更快的处理器也无济于事。 10.要分析循环运行,首先要确定该循环体的阶次n,然后用该循环要运行的次数乘以它。(n 表示的是问题的大小) 11.分析嵌套循环的复杂度时,必须将内层和外层循环都考虑进来。 12.方法调用的复杂度分析: 如:public void printsum(int count){ int sum = 0 ; for (int I = 1 ; I < count ; I++) sum += I ; System.out.println(sun); } printsum方法的复杂度为O(n),计算调用该方法的初始循环的时间复杂度,只需把printsum方法的复杂度乘以该循环运行的次数即可。所以调用上面实现的printsum方法的复 杂度为O(n2)。 13指数函数增长> 幂函数增长> 对数函数增长

数据结构期末考试试题及答案

《数据结构》期末考试试题及答案 (2003-2004学年第2学期) 单项选择题1、C 2、D 3、A 4、D 5、C 6、D 7、A 8、B 9、C 10、C 、 1. 对于一个算法,当输入非法数据时,也要能作出相应的处理,这种要求称为 (c )。 (A)、正确性但).可行性(C).健壮性 2 ?设S为C语言的语句,计算机执行下面算法时, for(i=n-1 ; i>=0; i--) for(j=0 ; jvi; j++) (A)、n2(B). O(nlgn) 3?折半查找法适用于( a (D). 输入性 算法的时间复杂度为(d S; (C). O(n) (D). )。 O(n2) (A)、有序顺序表(B)、有序单链表 (C)、有序顺序表和有序单链表都可以 4 .顺序存储结构的优势是( d )。 (A)、利于插入操作(B)、利于删除操作 (C)、利于顺序访问(D)、利于随机访问 5. 深度为k的完全二叉树,其叶子结点必在第 (A)、k-1 ( B)、k (C)、k-1 和 6. 具有60个结点的二叉树,其叶子结点有 (A)、11 ( B)、13 ( C)、48 (D)、无限制 c )层上。 (D)、1 至 k 12个,则度过1 (D)、37 k 的结点数为( 7 .图的Depth-First Search(DFS) 遍历思想实际上是二叉树( 法的推广。 (A)、先序(B)、中序(C)、后序(D)、层序 8.在下列链队列Q中,元素a出队的操作序列为( a )遍历方 front (A )、 (B )、 (C)、 (D )、p=Q.front->next; p->next= Q.front->next; p=Q.front->next; Q.front->next=p->next; p=Q.rear->next; p->next= Q.rear->next; p=Q->next; Q->next=p->next; 9. Huffman树的带权路径长度WPL等于( (A)、除根结点之外的所有结点权值之和(C)、各叶子结点的带权路径长度之和(B) 、 ) 所有结点权值之和 根结点的值 b ■

《数据结构》期末考试题及答案

2011-2012学年第一学期期末考查 《数据结构》试卷 (答案一律写在答题纸上,在本试卷上做答无效) 一、选择(每题1分,共10分) 1.长度为n的线性表采用顺序存储结构,一个在其第i个位置插入新元素的算法时间复杂度为(D) A.O(0) B.O(1) C.O(n) D.O(n2) 2.六个元素按照6,5,4,3,2,1的顺序入栈,下列哪一个是合法的出栈序列?(D) A.543612 B.453126 C.346512 D.234156 3.设树的度为4,其中度为1、2、3、4的结点个数分别是4、2、1、2,则树中叶子个数为(B ) A.8 B.9 C.10 D.11 4.设森林F对应的二叉树B有m个结点,B的右子树结点个数为n,森林F中第一棵树的结点个数是( B ) A. m-n B.m-n-1 C.n+1 D.m+n 5.若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是(B) A.9 B.11 C.15 D.不确定 6.下列哪一个方法可以判断出一个有向图是否有环。(A) A.深度优先遍历 B.拓扑排序 C.求最短路径 D.求关键路径 7.第7层有10个叶子结点的完全二叉树不可能有(B )个结点。 A.73 B.234 C.235 D.236 8.分别用以下序列构造二叉排序树,与用其他三个序列构造的结果不同的是(B) A.(100,80,90,60,120,110,130) B.(100, 120, 110,130,80, 60,90) C.(100,60,80,90,120,110,130) D.(100,80, 60,90, 120, 130,110) 9.对一组数据(84,47,25,15,21)排序,数据的排列次序在排序过程中变化如下:(1)84 47 25 15 21 (2)15 47 25 84 21 (3)15 21 25 84 47(4)15 21 25 47 84则采用的排序方法是(B ) A.选择排序 B.起泡排序 C.快速排序 D.插入排序 10.对线性表进行折半查找时,要求线性表必须(D) A.以顺序方式存储 B.以顺序方式存储,且数据元素有序

数据结构考试题

一、选择题(共15题,每题2分,共计30分) 1、单链表的一个存储结点包含( C ) A.指针域和链域 B.指针域或链域 C.数据域或指针域 D.数据域和链域 2、采用线性链表表示一个向量时,要求占用的存储空间地址( D )。 A、必须是连续的 B、部分地址必须是连续的 C、一定是不连续的 D、可连续可不连续 3、当利用大小为n的数组顺序存储一个队列时,该队列的最大长度为( B )。 A. n-2 B. n-1 C. n D. n+1 4、在一个单链表中,若q结点是p结点的前驱结点,若在q与p之间插入结点s,则执行( D )。 A、s→next = p→next; p→next = s; B、p→next = s; s→next k = q; C、p→next = s→next; s→next = p; D、q→next = s; s→next = p; 5、在数组A中,每一个数组元素A[i, j] 占用3个存储字,行下标i从1到8,列下标j 从1到10。所有数组元素相继存放于一个连续的存储空间中,则存放该数组至少需要的存储字数是( C )。 A、 80 B、 100 C、 240 D、 270 6、将一个递归算法改为对应的非递归算法时,通常需要使用( A )。 A、栈 B、队列 C、循环队列 D、优先队列 7、一个队列的进队列顺序是1, 2, 3, 4,则出队列顺序为( C )。 A、4, 3, 2, 1 B、2, 4, 3, 1 C、1, 2, 3, 4 D、3, 2, 1, 4 8.下述各类表中可以随机访问的是(D )。 A. 单向链表 B. 双向链表 C.单向循环链表 D.顺序表 9.在一个长度为n的顺序表中为了删除第5个元素,从前到后依次移动了15个元素。则原顺序表的长度为( B )。 A. 21 B. 20 C. 19 D. 25 10.元素1,3,5按顺序依次进栈,则该栈的不可能的输出序列是( B )。 A. 5 3 1 B. 5 1 3 C. 3 1 5 D. 1 5 3 11.一个队列的入队序列是5,6,7,8,则队列的输出序列是( A )。 A. 5 6 7 8 B. 8 7 6 5 C. 7 8 6 5 D.可能有多种情况 12.在一个单链表中,p、q分别指向表中两个相邻的结点,且q所指结点是p所指结点的直接后继,现要删除q所指结点,可用语句(C )。 A.p=q->next B.p->next=q C.p->next=q->next D.q->next=NULL 13.设一棵哈夫曼树共有n个非叶结点,则该树一共有( B )个结点。 A. 2*n-1 B. 2*n +1 C. 2*n D. 2*(n-1) 14.对如图1所示二叉树进行中序遍历,结果是( A )。 A. dfebagc B. defbagc C. defbacg D.dbaefcg

数据结构考试及答案()

数据结构考试及答案()

作者: 日期: 2

数据结构试题 一、单选题 1、在数据结构的讨论中把数据结构从逻辑上分为(C) A 内部结构与外部结构 B 静态结构与动态结构 C 线性结构与非线性结构 D 紧凑结构与非紧凑结构。 2、采用线性链表表示一个向量时,要求占用的存储空间地址(D) A 必须是连续的B部分地址必须是连续的 C 一定是不连续的D可连续可不连续 3、采用顺序搜索方法查找长度为n的顺序表时,搜索成功的平均搜索长度为 (D )。 An B n/2 C (n-1)/2 D (n+1)/2 4、在一个单链表中,若q结点是p结点的前驱结点,若在q与p之间插入结点s,则执行(D )o 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 )o 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 + n) % 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 (i nt i=0;i

清华大学数据结构试题及答案

一、单选题(每题 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的单链存储的线性表,在表头插入元素的时间复杂度为_________,在表尾插 入元素的时间复杂度为____________。 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.对一棵二叉搜索树进行中序遍历时,得到的结点序列是一个______________。对一棵由算术表 达式组成的二叉语法树进行后序遍历得到的结点序列是该算术表达式的__________________。

《数据结构》期末考试试卷

广东创新科技职业学院期末考试试题(标明A 卷、B 或C 卷) 2018 —2019 学年第二学期考试科目:《数据结构》 (闭(开)卷 90分钟) 院系____________ 班级____________ 学号___________ 姓名 __________ 一、选择题(每小题 2 分,共 40 分) 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. 下述程序段①中各语句执行频度的和是()。 s=0; ① for(i=1;i<=i;j++) s+=j; A .n-1 B .n C .2n-1 D .2n 7. 下面程序段的时间复杂度为()。 for(i=0;i

2015年数据结构期末考试题及答案

2012年数据结构期末考试题及答案 一、选择题 1.在数据结构中,从逻辑上可以把数据结构分为C。 A.动态结构和静态结构B.紧凑结构和非紧凑结构 C.线性结构和非线性结构D.内部结构和外部结构 2.数据结构在计算机内存中的表示是指A。 A.数据的存储结构B.数据结构C.数据的逻辑结构D.数据元素之间的关系 3.在数据结构中,与所使用的计算机无关的是数据的A结构。 A.逻辑B.存储C.逻辑和存储D.物理 4.在存储数据时,通常不仅要存储各数据元素的值,而且还要存储C。 A.数据的处理方法B.数据元素的类型 C.数据元素之间的关系D.数据的存储方法 5.在决定选取何种存储结构时,一般不考虑A。 A.各结点的值如何B.结点个数的多少 C.对数据有哪些运算D.所用的编程语言实现这种结构是否方便。 6.以下说法正确的是D。 A.数据项是数据的基本单位 B.数据元素是数据的最小单位 C.数据结构是带结构的数据项的集合 D.一些表面上很不相同的数据可以有相同的逻辑结构 7.算法分析的目的是C,算法分析的两个主要方面是A。 (1)A.找出数据结构的合理性B.研究算法中的输入和输出的关系 C.分析算法的效率以求改进C.分析算法的易读性和文档性 (2)A.空间复杂度和时间复杂度B.正确性和简明性 C.可读性和文档性D.数据复杂性和程序复杂性 8.下面程序段的时间复杂度是O(n2)。

s =0; for(I =0;i<n;i++) for(j=0;j<n;j++) s +=B[i][j]; sum =s ; 9.下面程序段的时间复杂度是O(n*m)。 for(i =0;i<n;i++) for(j=0;j<m;j++) A[i][j] =0; 10.下面程序段的时间复杂度是O(log3n)。 i =0; while(i<=n) i =i * 3; 11.在以下的叙述中,正确的是B。 A.线性表的顺序存储结构优于链表存储结构 B.二维数组是其数据元素为线性表的线性表 C.栈的操作方式是先进先出 D.队列的操作方式是先进后出 12.通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着B 。 A.数据元素具有同一特点 B.不仅数据元素所包含的数据项的个数要相同,而且对应的数据项的类型要一致 C.每个数据元素都一样 D.数据元素所包含的数据项的个数要相等 13.链表不具备的特点是A。 A.可随机访问任一结点B.插入删除不需要移动元素 C.不必事先估计存储空间D.所需空间与其长度成正比 14.不带头结点的单链表head为空的判定条件是A。

数据结构(C语言版)第三版__清华大学出版社_习题参考答案

附录习题参考答案 习题1参考答案 1.1.选择题 (1). A. (2). A. (3). A. (4). B.,C. (5). A. (6). A. (7). C. (8). A. (9). B. (10.) A. 1.2.填空题 (1). 数据关系 (2). 逻辑结构物理结构 (3). 线性数据结构树型结构图结构 (4). 顺序存储链式存储索引存储散列表(Hash)存储 (5). 变量的取值范围操作的类别 (6). 数据元素间的逻辑关系数据元素存储方式或者数据元素的物理关系 (7). 关系网状结构树结构 (8). 空间复杂度和时间复杂度 (9). 空间时间 (10). Ο(n) 1.3 名词解释如下: 数据:数据是信息的载体,是计算机程序加工和处理的对象,包括数值数据和非数值数据。数据项:数据项指不可分割的、具有独立意义的最小数据单位,数据项有时也称为字段或域。数据元素:数据元素是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理,一个数据元素可由若干个数据项组成。 数据逻辑结构:数据的逻辑结构就是指数据元素间的关系。 数据存储结构:数据的物理结构表示数据元素的存储方式或者数据元素的物理关系。 数据类型:是指变量的取值范围和所能够进行的操作的总和。 算法:是对特定问题求解步骤的一种描述,是指令的有限序列。 1.4 语句的时间复杂度为: (1) Ο(n2) (2) Ο(n2) (3) Ο(n2) (4) Ο(n-1) (5) Ο(n3) 1.5 参考程序: main() { int X,Y,Z; scanf(“%d, %d, %d”,&X,&Y,Z); if (X>=Y) if(X>=Z) if (Y>=Z) { printf(“%d, %d, %d”,X,Y,Z);} else { printf(“%d, %d, %d”,X,Z,Y);}

数据结构期末考试试题及答案

贵州大学理学院数学系信息与计算科学专业 《数据结构》期末考试试题及答案 (2003-2004学年第2学期) 一、单项选择题 1.对于一个算法,当输入非法数据时,也要能作出相应的处理,这种要求称为()。 (A)、正确性(B). 可行性(C). 健壮性(D). 输入性 2.设S为C语言的语句,计算机执行下面算法时,算法的时间复杂度为()。 for(i=n-1;i>=0;i--) for(j=0;jnext; p->next= Q.rear->next; (D)、p=Q->next; Q->next=p->next; 9. Huffman树的带权路径长度WPL等于() (A)、除根结点之外的所有结点权值之和(B)、所有结点权值之和 (C)、各叶子结点的带权路径长度之和(D)、根结点的值 10.线索二叉链表是利用()域存储后继结点的地址。 (A)、lchild (B)、data (C)、rchild (D)、root 二、填空题

数据结构期末考试试题含复习资料

2005年-2006学年第二学期“数据结构”考试试题(A)姓名学号(序号)_答案隐藏班号 要求:所有的题目的解答均写在答题纸上(每张答题纸上要写清晰姓名、班号和学号),需写清晰题目的序号。每张答题纸都要写上姓名和序号。 一、单项选择题(每小题2分,共20分) 1.数据的运算a 。 A.效率与采用何种存储结构有关 B.是根据存储结构来定义的 C.有算术运算和关系运算两大类 D.必须用程序设计语言来描述 答:A。 2.链表不具备的特点是 a 。 A.可随机访问任一结点 B.插入删除不需要移动元素 C.不必事先估计存储空间 D.所需空间与其长度成正比 答:参见本节要点3。本题答案为:A。 3.在顺序表中删除一个元素的时间复杂度为 c 。 A.O(1) B.O(log2n) C.O(n) D.O(n2) 答:C。 4.以下线性表的存储结构中具有随机存取功能的是d 。 A.不带头结点的单链表 B.带头结点的单链表 C.循环双链表 D.顺序表 解D。

5.一个栈的进栈序列是a,b,c,d,e,则栈的不可能的输出序列是 c 。A.edcba B.decba C.dceab D.abcde 答:C。 6.循环队列qu的队空条件是 d 。 A. (qu.rear+1)%MaxSize==(qu.front+1)%MaxSize B. (qu.rear+1)%MaxSize==qu.front+1 C.(qu.rear+1)%MaxSize==qu.front D.qu.rear==qu.front 答:D。 7.两个串相等必有串长度相等且 b 。 A.串的各位置字符任意 B.串中各位置字符均对应相等 C.两个串含有相同的字符 D.两个所含字符任意 答:B。 8.用直接插入排序对下面四个序列进行递增排序,元素比较次数最少的是 c 。 A.94,32,40,90,80,46,21,69 B.32,40,21,46,69,94,90,80 C.21,32,46,40,80,69,90,94 D.90,69,80,46,21,32,94,40 答:C。 9.以下序列不是堆(大根或小根)的是 d 。 A.{100,85,98,77,80,60,82,40,20,10,66} B.{100,98,85,82,80,77,66,60,40,20,10} C.{10,20,40,60,66,77,80,82,85,98,100} D.{100,85,40,77,80,60,66,98,82,10,20}

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