数据结构综合练习题

数据结构综合练习题
数据结构综合练习题

数据结构综合练习题

数据结构(一)

一、选择题

1.组成数据的基本单位是( C )。

(A) 数据项(B) 数据类型(C) 数据元素(D) 数据变量

2.设数据结构A=(D,R),其中D={1,2,3,4},R={r},r={<1,2>,<2,3>,<3,4>,<4,1>},则数据结构A 是( C )。

(A) 线性结构(B) 树型结构(C) 图型结构(D) 集合

3.数组的逻辑结构不同于下列( D )的逻辑结构。(A) 线性表(B) 栈(C) 队列(D) 树

4.二叉树中第i(i≥1)层上的结点数最多有(C )个。

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

5.设指针变量p指向单链表结点A,则删除结点A的后继结点B需要的操作为(A )。

(A) p->next=p->next->next (B) p=p->next

(C) p=p->next->next (D) p->next=p

6.设栈S和队列Q的初始状态为空,元素E1、E2、E3、E4、E5和E6依次通过栈S,一个元素出栈后即进入队列Q,若6个元素出列的顺序为E2、E4、E3、E6、E5和E1,则栈S的容量至少应该是( C )。

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

7.将10阶对称矩阵压缩存储到一维数组A中,则数组A 的长度最少为( C )。

(A) 100 (B) 40 (C) 55 (D) 80

8.设结点A有3个兄弟结点且结点B为结点A的双亲结点,则结点B的度数数为( B )。

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

9.根据二叉树的定义可知二叉树共有( B )种不同的形态。

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

10.设有以下四种排序方法,则( B )的空间复

杂度最大。

(A) 冒泡排序(B) 快速排序(C) 堆排序(D) 希尔排序

11、以下说法正确的是( A )

A.连通图的生成树,是该连通图的一个极小连通子图。

B.无向图的邻接矩阵是对称的,有向图的邻接矩阵一定是不对称的。

C.任何一个有向图,其全部顶点可以排成一个拓扑序列。

D.有回路的图不能进行拓扑排序。

12、以下说法错误的是 ( D )

A.一般在哈夫曼树中,权值越大的叶子离根结点越近

B.哈夫曼树中没有度数为1的分支结点

C.若初始森林中共有n裸二叉树,最终求得的哈夫曼树

共有2n-1个结点

D.若初始森林中共有n裸二叉树,进行2n-1次合并后

才能剩下一棵最终的哈夫曼树

13、如果从无向图的任一顶点出发进行一次深度优先搜索

即可访问所有顶点,则

该图一定是( B )

A.完全图

B.连通图

C.有回

路 D.一棵树

14、将一棵有50个结点的完全二叉树按层编号,则对编号

为25的结点x,该结点(B )

A.无左、右孩子

B.有左孩子,无右孩

C.有右孩子,无左孩子

D.有左、右孩子

15、深度为6的二叉树最多有(B )个结点

A.64

B.63

C.32

D.31

16、一个有序顺表有255个对象,采用顺序搜索法查表,

搜索长度为( A )。

A、128

B、127

C、126

D、255

17、在有向图中每个顶点的度等于该顶点的( C )。

A. 入度

B. 出度

C. 入度与出度之和

D. 入度与出度之差

18、具有n个顶点的有向无环图最多可包含( D )条有向

边。

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

19、用邻接表作为有向图G的存储结构。设有n个顶点、e

条弧,则拓扑排序的时间复杂度为(B )

A. O(n)

B. O(n+e)

C. O(e)

D. O(n*e)

20、一个有序顺表有255个对象,采用顺序搜索法查表,搜索长度为(A)。

A、128

B、127

C、126

D、255

21、在有向图中,所有顶点的入度之和是所有顶点出度之和的(B)倍。

A.0.5

B. 1

C. 2

D.4

22、以下说法错误的是(B)

A.用相邻矩阵法存储一个图时,在不考虑压缩存储的

情况下,所占用的存储空间大小只与图中结点个数有

关,而与图的边数无关。

B.邻接表法只能用于有向图的存储,而相邻矩阵法对

于有向图和无向图的存储都适用。

C.存储无向图的相邻矩阵是对称的,因此只要存储相

邻矩阵的下(或上)三角部分就可以了

D.用相邻矩阵A表示图,判定任意两个结点Vi和Vj 之间是否有长度为m的路径相连,则只要检查A的第 i行第j列的元素是否为0即可。

23、在图的邻接表存储结构上执行深度优先搜索遍历类似于二叉树上的( A )

A.先根遍历

B. 中根遍历

C. 后根遍历D按层次遍历

24、在一个无向图中,所有顶点的度数之和等于所有边数

的( B )倍。

A.3 B.2 C.1 D.1/2 25、在无向图中,所有顶点的度数之和是所有边数的( C )倍。

A.0.5

B.1

C.2

D.4

26、设有6个结点的无向图,该图至少应有(B)条边能确保是一个连通图。

A. 5

B. 6

C. 7

D. 8

27、以下说法正确的是( D )

A.连通分量是无向图中的极小连通子图。

B.强连通分量是有向图中的极大强连通子图。

C.在一个有向图的拓扑序列中,若顶点a在顶点b之

前,则图中必有一条弧

D.对有向图G,如果从任意顶点出发进行一次深度优先或广度优先搜索能访问到每个顶点,则该图一定是完全图。

二、填空题

1.设顺序循环队列Q[0:m-1]的队头指针和队尾指针分别

为F和R,其中队头指针F指向当前队头元素的前一个位置,队尾指针R指向当前队尾元素所在的位置,则出队列的语句为F =____________;。

2.设线性表中有n个数据元素,则在顺序存储结构上实现

顺序查找的平均时间复杂度为___________,在链式存储结构上实现顺序查找的平均时间复杂度为___________。

3.设一棵二叉树中有n个结点,则当用二叉链表作为其存

储结构时,该二叉链表中共有________个指针域,__________个空指针域。

4.设指针变量p指向单链表中结点A,指针变量s指向被

插入的结点B,则在结点A的后面插入结点B的操作序列为______________________________________。

5.设无向图G中有n个顶点和e条边,则其对应的邻接表

中有_________个表头结点和_________个表结点。

6.设无向图G中有n个顶点e条边,所有顶点的度数之和

为m,则e和m有______关系。

7.设一棵二叉树的前序遍历序列和中序遍历序列均为

ABC,则该二叉树的后序遍历序列为__________。

8.设一棵完全二叉树中有21个结点,如果按照从上到下、

从左到右的顺序从1开始顺序编号,则编号为8的双亲结点的编号是___________,编号为8的左孩子结点的编号是_____________。

9.下列程序段的功能实现子串t在主串s中位置的算法,

要求在下划线处填上正确语句。

int index(char s[ ], char t[ ])

{

i=j=0;

while(i

j=______;}

if (j==strlen(t))return(i-strlen(t));else return (-1);

}

10.设一个连通图G中有n个顶点e条边,则其最小生成

树上有________条边。

三、应用题

1.设完全二叉树的顺序存储结构中存储数据ABCDE,要求给出该二叉树的链式存储结构并给出该二叉树的前序、中序和后序遍历序列。

2.设给定一个权值集合W=(3,5,7,9,11),要求根据给定的权值集合构造一棵哈夫曼树并计算哈夫曼树的带权路径长度WPL。

3.设一组初始记录关键字序列为(19,21,

16,5,18,23),要求给出以19为基准

的一趟快速排序结果以及第2趟直接选择

排序后的结果。

4.设一组初始记录关键字集合为(25,10,8,

27,32,68),散列表的长度为7,散列函数H(k)=k mod 7,要求用线性探测法作为解决冲突的方法设计哈希表。5.设无向图G(所右图所示),要求给出该图的深度优先和广度优先遍历的序列,并画给相应的生成树

(一)参考答案

二、填空题

1. (F+1) % m

2. O (n),O(n)

3. 2n ,n+1

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

5. n , 2e

6. m =2e

7. C BA

8. 4,16

9. i -j+1,0

10. n-1

三、应用题

1. 链式存储结构略,前序ABDEC ,中序DBEAC ,后序DEBCA 。

2. 哈夫曼树略,WPL=78

3. (18,5,16,19,21,23),(5,16,21,19,18,23)

4. 线性探测:6827322510876543210ΛΛ

数据结构(二)

一、选择题

1.下面关于线性表的叙述错误的是( )。

(A) 线性表采用顺序存储必须占用一片连续的存储空间

(B) 线性表采用链式存储不必占用一片连续的存储空

(C) 线性表采用链式存储便于插入和删除操作的实现

(D) 线性表采用顺序存储便于插入和删除操作的实现2.设哈夫曼树中的叶子结点总数为m,若用二叉链表作为存储结构,则该哈夫曼树中总共有()个空指针域。

(A) 2m-1 (B) 2m (C) 2m+1 (D) 4m

3.设顺序循环队列Q[0:M-1]的头指针和尾指针分别为F 和R,头指针F总是指向队头元素的前一位置,尾指针R总是指向队尾元素的当前位置,则该循环队列中的元素个数为()。

(A) R-F (B) F-R (C) (R-F+M)%M (D) (F-R+M)%M 4.设某棵二叉树的中序遍历序列为ABCD,前序遍历序列为CABD,则后序遍历该二叉树得到序列为()。(A) BADC (B) BCDA (C) CDAB (D) CBDA

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

(A) n(n-1)/2 (B) n(n-1) (C) n2(D) n2-1 6.设某棵二叉树中有2000个结点,则该二叉树的最小高度为()。

(A) 9 (B) 10 (C) 11 (D) 12

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

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

8.设一组初始记录关键字序列(5,2,6,3,8),以第一个记录关键字5为基准进行一趟快速排序的结果为()。

(A) 2,3,5,8,6 (B) 3,2,5,8,6

(C) 3,2,5,6,8 (D) 2,3,6,5,8

二、填空题

1.为了能有效地应用HASH查找技术,必须解决的两个问题

是____________________和__________________________。

2.下面程序段的功能实现数据x进栈,要求在下划线处填

上正确的语句。

typedef struct {int s[100]; int top;} sqstack;

void push(sqstack &stack,int x)

{

if (stack.top==m-1) printf(“overflow”);

else

{____________________;_________________;}

}

3.中序遍历二叉排序树所得到的序列是___________序列

(填有序或无序)。

4.快速排序的最坏时间复杂度为___________,平均时间复

杂度为__________。

5. 设某棵二叉树中度数为0的结点数为N 0,度数为1的结

点数为N 1,则该二叉树中度数为2的结点数为

_________;若采用二叉链表作为该二叉树的存储结构,则该二叉树中共有_______个空指针域。

6. 设某无向图中顶点数和边数分别为n 和e ,所有顶点的度数之和为d ,则e=_______。

7. 设一组初始记录关键字序列为(55,63,44,38,75,80,31,56),则利用筛选法建立的初始堆为___________________________。

8. 设某无向图G 的邻接表为3

12413

14234321>->->->->->->->->->-v v v v ,则从顶点V 1开始的

深度优先遍历序列为___________;广度优先遍历序列为____________。

三、应用题

1. 设一组初始记录关键字序列为(45,80,47,40,20,

78),则分别给出第4趟简单选择排序和第4趟直接插入排序后的结果。

2. 设指针变量p 指向双向链表中结点A ,指针变量q 指向被插入结点B ,要求给出在结点A 的后面插入结点B 的操作序列(设双向链表中结点的两个指针域分别为llink 和rlink )。

3. 设一组有序的记录关键字序列为(13,

18,24,35,47,50,62,83,90),查找

方法用二分查找,要求计算出查找关键字62时的比较次数并计算出查找成功时的平均查找长度。

4. 设一棵树T 中边的集合为{(A ,B),(A ,C),(A ,D),

(B ,E),(C ,F),(C ,G)},要求用孩子兄弟表示法(二叉链表)表示出该树的存储结构并将该树转化成对应的二叉树。

5. 设有无向图G (如右图所示),要求给出用普里姆算法

构造最小生成树所走过的边的集合。

6. 设有一组初始记录关键字为(45,80,48,40,22,

78),要求构造一棵二叉排序树并给出构造过程。

7、给出如图所示的无向图G 的邻接矩阵和邻接表两种存储结构。

8、简单选择排序、快速排序和堆排序是不稳定的排序方法, 试举例说明。

9、给出下图邻接矩阵和邻接表两种存储结构;写出图的拓扑序列。

V2 V1 V3 V6 V5 V4

(二)参考答案

一、选择题

1.D

2.B

3.C

4.A

5.A

6.C

7.B

8.C

二、填空题

1.构造一个好的HASH函数,确定解决冲突的方法

2.s tack.top++,stack.s[stack.top]=x

3.有序

4.O(n2),O(nlog

2

n)

5.N

0-1,2N

+N

1

6.d/2

7.(31,38,54,56,75,80,55,63)

8.(1,3,4,2),(1,3,2,4)

三、应用题

1.(20,40,45,47,80,78),(40,45,47,80,20,78)

2.q->llink=p; q->rlink=p->rlink; p->rlink->llink=q;

p->rlink=q;

3.2,ASL=91*1+2*2+3*4+4*2)=25/9

4.树的链式存储结构略,二叉树略

5.E={(1,3),(1,2),(3,5),(5,6),(6,4)}

6.略

8、简单选择排序、快速排序和堆排序是不稳定的排序方法, 试举例说明。

【解答】

(2) 简单选择排序{ 275 275* 512 061 } i = 1

{ 061 275* 512 275 } i = 2

{ 061 275* 512 275 } i = 3

{ 061 275* 275 512 }

(3) 快速排序{ 512 275 275* }

{ 275* 275 512 }

(4) 堆排序{ 275 275* 061 170 } 已经是最大堆,交换275与170

{ 170 275* 061 275 } 对前3个调整

{ 275* 170 061 275 } 前3个最大堆,交换275*与061

{ 061 170 275* 275 } 对前2个调整

{ 170 061 275* 275 } 前2个最大堆,交换170与061

{ 061 170 275* 275 }

数据结构(三)

一、选择题

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

的时间复杂度为()。

n) (C) O(n2) (D) O(n3/2) (A) O(n) (B) O(nlog

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;

二、判断题

1、数据的最小单位是数据项。………………………….( √)

2、多重表文件中主索引为非稠密索引,次索引为稠密索引。……….( √ )

3、通常数据结构在计算机中有四种不同的表示方法分为顺序存储结构、链式存储结构、索引存储、文件存储。……….…….( × )

4、算法具有输入、输出、可行性、稳定性、有穷性五个特性。……………….( ×)

5、数据的基本单位是数据项。………………………….( × )

6、算法的复杂度分为时间复杂度和效率复杂度。………….( × )

7、性质相同的数据元素的集合成为数据对象。…………….( √)

8、所有结点按1对1的邻接关系构成的整体就是集合结构。……….( × )

9、散列文件不能顺序存取、只能按关键字随机存取。…………….( √ )

10、数据的基本单位是数据元素。………………………….( √ )

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

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

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

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

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

16.具有12个结点的完全二叉树有5个度为2的结点。

()17.关键路径是事件结点网络中的从源点到汇点的最短路径。()

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

19.堆排序是不稳定的排序方法。(√)

20.查找表是由同一类型的数据元素(或记录)构成的集合(√)

三、填空题

1.设指针变量p指向双向链表中的结点A,指针变量s指

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

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

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

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

3.设关键字序列为(K

l ,K

2

,…,K

n

),则用筛选法建初始堆

必须从第______个元素开始进行筛选。

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

__________________。

5.设一棵三叉树中有50个度数为0的结点,21个度数为2

的结点,则该二叉树中度数为3的结点数有______个。

6.高度为h的完全二叉树中最少有________个结点,最多

有________个结点。

7.设有一组初始关键字序列为(24,35,12,27,18,26),

则第3趟直接插入排序结束后的结果的是__________________________________。

8.设有一组初始关键字序列为(24,35,12,27,18,26),

则第3趟简单选择排序结束后的结果的是__________________________________。

9.设一棵二叉树的前序序列为ABC,则有______________

种不同的二叉树可以得到这种序列。

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

数据结构第二章试题

第2章线性表 一、选择题 1. 链表不具备的特点是()。 A.可随机访问任意结点 B. 插入删除不需要移动元素 C. 不必事先估计存储空间 D. 所需空间与其长度成正比 2. 不带头结点的单链表head为空的判定条件是()。 ==NULL B. head->next==NULL >next==head !=NULL 3.带头结点的单链表head为空的判定条件是()。 ==NULL B. head->next==NULL >next==head !=NULL 4.带头结点的双循环链表L为空表的条件是()。 A.L==NULL B.L->next->==NULL C.L->prior==NULL >next==L 5.非空的循环链表head的尾结点(由P所指向)满足()。 A.p->next==NULL B.p==NULL C.p->next==head ==head 6.在循环双链表的p所指结点之前插入s所指结点的操作是()。 A.p->prior=s;s->next=p;p->prior->next=s;s->prior=p->prior; B.p->prior=s;p->prior->next=s;s->next=p;s->prior=p->prior; C.s->next=p;s->prior=p->prior;p->prior=s;p->right->next=s; D. s->next=p;s->prior=p->prior;p->prior->next=s;p->prior=s; 7.若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点,则采用()存储方式最节省运算时间。 A.单链表 B.给出表头指针的单循环链表 C.双链表 D. 带头结点的双循环链表 8.某线性表最常用的操作是在最后一个结点之后插入一个节点或删除第一个结点,故采用()存储方式最节省运算时间。 A.单链表 B.仅有头结点的单循环链表 C.双链表 D. 仅有尾指针的单循环链表 9.需要分配较大空间,插入和删除不需要移动元素的线性表,其存储结构是()。 A.单链表 B.静态链表 C.线性链表 D. 顺序存储结构 10.如果最常用的操作是取第i个结点及前驱,则采用()存储方式最节省时间。 A.单链表 B.双链表 C.单循环链表 D.顺序表 11.在一个具有n个结点的有序单链表中插入一个新结点并仍然保持有序的时间复杂度是()。 A.O(1) B.O(n) C.O(n*n) D. O(nlog2n) 12.在一个长度为n(n>1)的单链表上,设有头和尾两个指针,执行()操作与链表的长度有关。A.删除单链表中的第一个元素 B.删除单链表中的最后一个元素 C. 在单链表第一个元素前插入一个新元素 D.在单链表最后一个元素后插入一个新元素 13.设线性表有n个元素,以下算法中,()在顺序表上实现比在链表上实现效率更高。A.输出第i(0<=i<=n-1)个元素值 B.交换第0个元素与第1个元素的值 C. 顺序输出这n个元素的值 D.输出与给定值x相等的元素在线性表中的序号 14.设线性表有2n个元素,算法(),在单链表上实现比在顺序表上实现效率更高。 A.删除所有值为x的元素 B.在最后一个元素的后面插入一个新元素 C. 顺序输出前k个元素 D.交换第i个元素和第2n-i-1个元素的值(i=0,1,…,n-1)

数据结构试题库答案

数据结构试题及答案 一、单项选择题 (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)理论艰深,方法灵活,给学习带来困难; 2)内容丰富,涉及的知识较多,学习有一定的难度; 3)侧重于知识的实际应用,要求学生有较好的思维以及较强的分析和解决问题的能力,因而加大了学习的难度; 根据《数据结构》课程本身的特性,通过实验实践内容的训练,突出构造性思维训练的特征,目的是提高学生分析问题,组织数据及设计大型软件的能力。 课程上机实验的目的,不仅仅是验证教材和讲课的内容,检查自己所编的程序是否正确,课程安排的上机实验的目的可以概括为如下几个方面: (1)加深对课堂讲授内容的理解 实验是对学生的一种全面综合训练。是与课堂听讲、自学和练习相辅相成的必不可少的一个教学环节。通常,实验题中的问题比平时的习题复杂得多,也更接近实际。实验着眼于原理与应用的结合点,使学生学会如何把书上学到的知识用于解决实际问题,培养软件工作所需要的动手能力;另一方面,能使书上的知识变" 活" ,起到深化理解和灵活掌握教学内容的目的。 不少学生在解答习题尤其是算法设计时,觉得无从下手。实验中的内容和教科书的内容是密切相关的,解决题目要求所需的各种技术大多可从教科书中找到,只不过其出

现的形式呈多样化,因此需要仔细体会,在反复实践的过程中才能掌握。 (2) 培养学生软件设计的综合能力 平时的练习较偏重于如何编写功能单一的" 小" 算法,而实验题是软件设计的综合训练,包括问题分析、总体结构设计、用户界面设计、程序设计基本技能和技巧,多人合作,以至一整套软件工作规范的训练和科学作风的培养。 通过实验使学生不仅能够深化理解教学内容,进一步提高灵活运用数据结构、算法和程序设计技术的能力,而且可以在需求分析、总体结构设计、算法设计、程序设计、上机操作及程序调试等基本技能方面受到综合训练。实验着眼于原理与应用的结合点,使学生学会如何把书本上和课堂上学到的知识用于解决实际问题,从而培养计算机软件工作所需要的动手能力。 (3) 熟悉程序开发环境,学习上机调试程序一个程序从编辑,编译,连接到运行,都要在一定的外部操作环境下才能进行。所谓" 环境" 就是所用的计算机系统硬件,软件条件,只有学会使用这些环境,才能进行 程序开发工作。通过上机实验,熟练地掌握程序的开发环境,为以后真正编写计算机程序解决实际问题打下基础。同时,在今后遇到其它开发环境时就会触类旁通,很快掌握新系统的使用。 完成程序的编写,决不意味着万事大吉。你认为万无一失的程序,实际上机运行时可能不断出现麻烦。如编译程序检测出一大堆语法错误。有时程序本身不存在语法错误,也能够顺利运行,但是运行结果显然是错误的。开发环境所提供的编译系统无法发现这种程序逻辑错误,只能靠自己的上机经验分析判断错误所在。程序的调试是一个技巧性很强的工作,尽快掌握程序调试方法是非常重要的。分析问题,选择算法,编好程序,只能说完成一半工作,另一半工作就是调试程序,运行程序并得到正确结果。 二、实验要求 常用的软件开发方法,是将软件开发过程划分为分析、设计、实现和维护四个阶段。虽然数据结构课程中的实验题目的远不如从实际问题中的复杂程度度高,但为了培养一个软件工作者所应具备的科学工作的方法和作风,也应遵循以下五个步骤来完成实验题目: 1) 问题分析和任务定义 在进行设计之前,首先应该充分地分析和理解问题,明确问题要求做什么?限制条件是什么。本步骤强调的是做什么?而不是怎么做。对问题的描述应避开算法和所涉及的数据类型,而是对所需完成的任务作出明确的回答。例如:输入数据的类型、值的范围以及输入的

数据结构第二章线性表测试题

第二章线性表 1、描述一下三个概念的区别:头指针,头结点,首元结点。并给予图示。 2、对于有头结点的单链表,分别写出定位成功时,实现下列定位语句序列。(1)定位到第i 个结点a i ; (2)定位到第i 个结点的前驱a i-1; (3)定位到尾结点; (4)定位到尾结点的前驱。 3、已知L 是有表头结点的单链表,且P 结点既不是首元结点,也不是尾结点,试写出实现下列功能的语句序列。 (1)在P 结点后插入S 结点;(2)在P 结点前插入S 结点;(3)在表首插入S 结点;(4)在表尾插入S 结点 . p=head; p=head; j=0; while ( p && jnext; j++;} p=head; j=0; while ( p && jnext; j++;} p=head; while ( p ->next ) p=p->next; while ( p->next->next ) p=p->next; (1)s->next=p->next; p->next=s; (2)q =L ; whil e ( q ->next !=p ) q =q ->next;s->next=p 或 q ->next ; q ->next=s; (3 ) s->next=L ->next; L ->next=s; (4)q =L ; whil e ( q ->next !=NULL) q =q ->next;s->next= q ->next ; q ->next=s;

4、设计算法:在顺序表中删除值为e 的元素,删除成功,返回1;否则,返回0。 5、设计一个算法,将一个带头节点的数据域依次为a 1,a 2,…,a n (n ≥3)的单链表的所有节点逆置,即第一个节点的数据域变为a n ,…,最后一个节点的数据域为a 1。(注意:先用自然语言描述算法基本思想,然后用类C++语言描述) int Sqlist::DeleteElem( T e ) { for (i=1; i<=len g t h ; i ++) // 按值顺序查找 * i 可从0开始 if (elem[i-1]= =e) // 找到,进行删除操作 { for ( j=i; jnext; 4 LinkList* pri = NULL; //之前的节点 5 while(p){ 6 LinkList* q = new LinkList; 7 q->data = p->data; //把当前节点记录下来 8 q->next = pri; 9 pri = q; 10 head->next = q; 11 LinkList* t = p; //当前节点没用了删除掉 12 p=p->next; 13 delete(t); 14 } 15 }

数据结构试题(含答案)

一.是非题 (正确的打“√”,错误的打“×”。) 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’)

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 .没有共同点

计10--数据结构专题实验rev2

上机实验要求及规范 《数据结构》课程具有比较强的理论性,同时也具有较强的可应用性和实践性,因此上机实验是一个重要的教学环节。一般情况下学生能够重视实验环节,对于编写程序上机练习具有一定的积极性,但是容易忽略实验的总结,忽略实验报告的撰写。对于一名大学生必须严格训练分析总结能力、书面表达能力。需要逐步培养书写科学实验报告以及科技论文的能力。拿到一个题目,一般不要急于编程,而是应该按照面向过程的程序设计思路(关于面向对象的训练将在其它后继课程中进行),首先理解问题,明确给定的条件和要求解决的问题,然后按照自顶向下,逐步求精,分而治之的策略,逐一地解决子问题。具体步骤如下: 1.问题分析与系统结构设计 充分地分析和理解问题本身,弄清要求做什么(而不是怎么做),限制条件是什么。按照以数据结构为中心的原则划分模块,搞清数据的逻辑结构(是线性表还是树、图?),确定数据的存储结构(是顺序结构还是链表结构?),然后设计有关操作的函数。在每个函数模块中,要综合考虑系统功能,使系统结构清晰、合理、简单和易于调试。最后写出每个模块的算法头和规格说明,列出模块之间的调用关系(可以用图表示),便完成了系统结构设计。 2.详细设计和编码 详细设计是对函数(模块)的进一步求精,用伪高级语言(如类C语言)或自然语言写出算法框架,这时不必确定很多结构和变量。 编码,即程序设计,是对详细设计结果的进一步求精,即用某种高级语言(如C/C++语言)表达出来。尽量多设一些注释语句,清晰易懂。尽量临时增加一些输出语句,便于差错矫正,在程序成功后再删去它们。 3.上机准备 熟悉高级语言用法,如C语言。熟悉机器(即操作系统),基本的常用命令。静态检查主要有两条路径,一是用一组测试数据手工执行程序(或分模块进行);二是通过阅读或给别人讲解自己的程序而深入全面地理解程序逻辑,在这个过程中再加入一些注释和断言。如果程序中逻辑概念清楚,后者将比前者有效。 4.上机调试程序 调试最好分块进行,自底向上,即先调试底层函数,必要时可以另写一个调用驱动程序,表面上的麻烦工作可以大大降低调试时所面临的复杂性,提高工作效率。 5.整理实验报告 在上机实验开始之前要充分准备实验数据,在上机实践过程中要及时记录实验数据,在上机实践完成之后必须及时总结分析,写出实验报告。

数据结构考试题库含答案

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

选择题 第一章绪论 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;

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

数据结构期末考试题及答案 、选择题 1.在数据结构中, 从逻辑上能够把数据结构分为 A. 动态结构和静态结构 B .紧凑结构和非紧凑结构 C.线性结构和非线性结构 D .内部结构和外部结构 2. 数据结构在计算机内存中的表示是指 A.数据的存储结构 B.数据结构 C.数据的逻辑结构 D.数据元素之间的关系 3. 在数据结构中, 与所使用的计算机无关的是数据的 结构。 A.逻辑 B.存储 C.逻辑和存储 D.物理 4. 在存储数据时, 一般不但要存储各数据元素的值, 而且还 要存储C A. 数据的处理方法 B. 数据元素的类型 C.数据元素之间的关系 D.数据的存储方法 5.在决定选取何种存储结构时般不考虑A 。 A. 各结点的值如何 B. 结点个数的多少 C.对数据有哪些运算 D.所用的编程语言实现这种结构是否方便。 6.以下说法正确的是 A. 数据项是数据的基本单位

B. 数据元素是数据的最小单位 C. 数据结构是带结构的数据项的集合 D. —些表面上很不相同的数据能够有相同的逻辑结构7.算法分析的目的是C , 算法分析的两个主要方面是A 。 (1) A.找出数据结构的合理性 和输出的关系 C. 分析算法的效率以求改进 档性 ( 2) A .空间复杂度和时间复杂度 C. 可读性和文档性 性 8. 下面程序段的时间复杂度是 s = 0; for( I = 0; i v n; i + + ) for( j = 0; j v n; j ++ ) s +二B[i][j]; sum = s ; 9. 下面程序段的时间复杂度是 for( i = 0; i v n; i + + ) for( j = 0; j v m; j ++ ) B .研究算法中的输入 C .分析算法的易读性和文 B .正确性和简明性D .数据复杂性和程序复杂 O( n2) 。 O( n*m) 。

数据结构试题及答案

一、单选题(每题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(log2n) B.O(nlog2n) C.0(n) D.0(n2) 10.10.从二叉搜索树中查找一个元素时,其时间复杂度大致为( C )。 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的单链存储的线性表,在表头插入元素的时间复杂度 为____O(1)_____,在表尾插入元素的时间复杂度为____O n________。

数据结构试题及答案

第一章概论 一、选择题 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

数据结构(c语言版)期末考试复习试题

《数据结构与算法》(c语言版)期末考复习题 一、选择题。 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

数据结构第二章练习题 - 副本

《数据结构》第二章练习题 1.单项选择题 2.1链表不具备的特点是() A 可随机访问任一结点 B 插入删除不需要移动元素 C 不必事先估计存储空间 D 所需空间与其长度成正比 2.2 不带头节点的单链表head为空的判定条件是() A head==NULL B head->next==NULL C head->next==head D head!=NULL 2.3带头节点的单链表head为空的判定条件是() A head==NULL B head->next==NULL C head->next==head D head!=NULL 2.4 带头结点的双循环链表L为空的条件是() A L==NULL B l->next->==NULL C L->prior==NULL D L->next==L 2.5 非空的循环单链表head尾结点(由P所指向)满足() A P->next==NULL B P==NULL C P->next==head D P==head 2.6在双循环链表中的P所指结点之前插入s所指结点的操作是() A p->prior=s;s->next=p;p->prior>next=s;s->prior=p->prior; B p->prior=s;p->prior>next=s;s->next=p;s->prior=p->prior; C s->next=p;s->prior=p->prior; p->prior=s;p->right->next=s; D s->next=p;s->prior=p->prior;p->prior->next=s;p->prior=s; 2.7若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点,则采用()存储方式最节省运算时间 A 单链表 B 给出表头指针的单循环链表 C 双链表 D 带头结点的双循环链表 2.8某线性表最常用的操作时在最后一个结点之后插入一个结点或删除第一个结点,故采用()存储方式最节省运算时间 A 单链表B仅有头结点的单循环链表

《数据结构》题库及答案

《数据结构》题库及答案 一、选择题 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 的存放位置是 。

数据结构期末考试试题A卷(完成,不知对不对)

第 1 页,共 11 页 任课教师签名: 命题教师签名: 系主任签名: 主管院长签名: 湛江师范学院2007年-2008学年度第1学期 期末考试试题A 卷 (考试时间:120分钟) 考试科目: 数据结构 请将所有答案填写在答题卡上,交卷时请将所有试卷上交 一、单选题(每小题2分,共40分) 1.下列算法的时间复杂度是( B )。 for ( i=0; inext==L C L->next==p D p->next==NULL 4.4个元素进S 栈的顺序是A 、B 、C 、D ,进行两次Pop(S,x)操作后, 栈顶元素的值是( B )。 A A B B C C D D 5.经过下列栈的运算后GetTop(S)的值是( A )。 InitStack(s); Push(s,a); Push(s,b); Pop(s); A a B b C 1 D 2

6.栈的特点是(B )。 A 先进先出 B 后进先出 C 后进 后出 D 不进不出 7.经过下列运算后GetHead(Q)的值是( A ) InitQueue(Q); EnQueue(Q,a); EnQueue(Q,b); A a B b C 1 D 2 8.一维数组的元素起始地址loc[0]=1000,元素长度为4,则loc[2]为( C )。 A 1000 B 1010 C 1008 D 1020 9.二叉树第i层上最多有( C )个结点。 A 2i B 2i-1 C 2i-1 D i2 10.满二叉树( A )二叉树。 A 一定是完全 B 不一定是完全 C 不是 D 不是完全 11.二叉树按二叉链表存储,每个结点包含三个域(lchild、data、rchild),若p指针指向二叉树的根结点,经过运算while ( p->rchild!=null ) p=p->rchild,则( A )。 A p指向二叉树的最右下方的结点 B p指向二叉树的 最左下方的结点 C p仍指向根结点 D p为null 12.在具有n个结点的完全二叉树中,结点i(2i

数据结构试题及答案修2

试卷一 一、单选题(每题 2 分,共20分) 1. 对一个算法的评价,不包括如下()方面的内容。 A.健壮性和可读性B.并行性C.正确性D.时空复杂度 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. 对线性表,在下列哪种情况下应当采用链表表示?( ) A.经常需要随机地存取元素 B.经常需要进行插入和删除操作 C.表中元素需要占据一片连续的存储空间 D.表中元素的个数不变 4. 一个栈的输入序列为1 2 3,则下列序列中不可能是栈的输出序列的是( ) A. 2 3 1 B. 3 2 1 C. 3 1 2 D. 1 2 3 5. AOV网是一种()。 A.有向图B.无向图C.无向无环图D.有向无环图 7. 若需要利用形参直接访问实参时,应将形参变量说明为()参数。 A.值B.函数C.指针D.引用 8. 在稀疏矩阵的带行指针向量的链接存储中,每个单链表中的结点都具有相同的()。 A.行号B.列号C.元素值D.非零元素个数 二、填空题(每空1分,共28分) 1. 数据结构是指数据及其相互之间的______________。当结点之间存在M对N(M:N)的联系时,称这种结构为_____________________。 2. 队列的插入操作是在队列的___尾______进行,删除操作是在队列的____首______进行。 3. 当用长度为N的数组顺序存储一个栈时,假定用top==N表示栈空,则表示栈满的条件是___top==0_____________。 4. 对于一个长度为n的单链存储的线性表,在表头插入元素的时间复杂度为_________,在表尾插入元素的时间复杂度为____________。 7. 二叉树是指度为2的____________________树。一棵结点数为N的二叉树,其所有结点的度的总和是_____________。 8. 对一棵二叉搜索树进行中序遍历时,得到的结点序列是一个______________。对一棵由算术表达式组成的二叉语法树进行后序遍历得到的结点序列是该算术表达式的__________________。 9. 对于一棵具有n个结点的二叉树,用二叉链表存储时,其指针总数为_____________个,其中_______________个用于指向孩子,_________________个指针是空闲的。 10. 若对一棵完全二叉树从0开始进行结点的编号,并按此编号把它顺序存储到一维数组A中,即编号为0的结点存储到A[0]中。其余类推,则A[ i ]元素的左孩子元素为________,右孩子元素为

数据结构试题库与答案

数据结构试题库及答案 第一章 概论 一、选择题 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