数据结构复习题目及答案

数据结构复习题目及答案
数据结构复习题目及答案

《数据结构-C语言版》

第一章绪论

单项选择题

1.在数据结构中,数据的基本单位是_____ ____。

A. 数据项

B. 数据类型

C. 数据元素

D. 数据变量

2.数据结构中数据元素之间的逻辑关系被称为__ ____。

A. 数据的存储结构

B. 数据的基本操作

C. 程序的算法

D. 数据的逻辑结构3.在数据结构中,与所使用计算机无关的是数据的____ ___。

A. 存储结构

B. 逻辑和物理结构

C. 逻辑结构

D. 物理结构4.在链式存储结构中,数据之间的关系是通过____ ____体现的。

A. 数据在存的相对位置

B. 指示数据元素的指针

C. 数据的存储地址

D. 指针

5.计算算法的时间复杂度是属于一种____ ___。

A. 事前统计的方法

B. 事前分析估算的方法

C. 事后统计的方法

D. 事后分析估算的方法

6.在对算法的时间复杂度进行估计的时候,下列最佳的时间复杂度是____ __。

A. n2

B. nlogn

C. n

D. logn

7.设使用某算法对n个元素进行处理,所需的时间是T(n)=100nlog2n+200n+2000,则该算法的渐近时间复杂度为____ ___。

A. O(1)

B. O(n)

C. O(200n)

D. O(nlog2n)

CDCBBDD

第二章线性表

单项选择题

1.链表不具有的特点是____ ____。

A. 可随机访问任一元素

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

C. 不必事先估计存储空间

D. 所需空间与线性表的长度正比

2.设顺序表的每个元素占8个存储单元。第1个单元的存储地址是100,则第6个元素占用的最后一个存储单元的地址为。

A. B. 140 C. 147 D. 148

3.在线性链表存储结构下,插入操作算法。

A. 需要判断是否表满

B. 需要判断是否表空

C. 不需要判断表满

D. 需要判断是否表空和表满

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

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

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

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

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

5.将长度为n的单链表接在长度为m的单链表之后的算法时间复杂度为。A. O(n) B. O(1) C. O(m) D. O(m+n)

6.需要预分较大空间,插入和删除不需要移动元素的线性表,其存储结构是。

A. 单链表

B. 静态链表

C. 线性链表

D. 顺序存储方式ACCABB

填空题

1.在带表头结点的单链表中,当删除某一指定结点时,必须找到该结点的_____结点。2.在单链表中,指针p所指结点为最后一个结点的条件是。

3.将两个各有n个元素的有序表归并成一个有序表,其最少的比较次数是。4.在一个长度为n的顺序表中第i个元素(1≤i≤n)之前插入一个元素时,需向后移动元素的个数是。

5.在长度为n的顺序表中插入一个元素的时间复杂度为。

1前驱

2 p->next==NULL

3.1

4.n-i+1

5.O(n) 例题解析

【例2-1】 编写一个算法将一个单链表逆转,要求在原表上进行,不允许重新建链表。 解:该算法可以在遍历原表的时候将各结点的指针逆转,从原表的第一个结点开始,头结点的指针在最后修改成指向原表的最后一个结点,即新表的第一个结点。实现本题功能的函数如下:

void inverse(Lnode *h) {s=h->next;

if(s==NULL) return; q=NULL; p=s;

while(p!=NULL) { p=p->next;

s->next=q; /*逆转指针*/ q=s; /*指针前移*/ s=p; }

h->next=q; /*头指针h 的后继是p*/ }

【例2-2】 编写一算法将两个按元素值递增有序排列的单链表A 和B 归并成一个按元素值递增有序排列的单链表C 。

解:对于两个或两个以上的,结点按元素值有序排列的单链表进行操作时,应采用“指针平行移动,依次扫描完成”的方法。从两表的第一个结点开始顺链表逐个将对应数据元素进行比较,复制小的并插入c 表尾。当两表中之一已到表尾,则复制另一个链表的剩余部分,插入到c 表尾。设pa 、pb 分别指向两表当前结点,p 指向c 表的当前表尾结点。若设A 中当前所指的元素为a ,B 中当前所指的元素为b ,则当前应插入到 C 中的元素c 为

??

?>≤=b

a b

b a a

c

例如:A=(3,5,8,11) B=(2,6,8,9,11,15,20)

则 C=(2,3,5,6,8,8,9,11,11,15,20) 实现本题功能的函数如下: Lnode *hb(Lnode *pa,Lnode *pb) {Lnode *p,*q,*pc;

pc=(Lnode*)malloc(sizeof(Lnode)); /*建立表c 的头结点pc*/

p=pc; /*p指向C表头结点*/

while(pa!=NULL&&pb!=NULL)

{

q=(Lnode*)malloc(sizeof(Lnode)); /*建立新结点q*/

if(pb->datadata) /*比较A、B表中当前结点的数据域值的大小*/

{q->data=pb->data; /*B中结点值小,将其值赋给q的数据域*/

pb=pb->next; /*B中指针pb后移*/

}

else

{q->data=pa->data; /*相反,将A结点值赋给q的数据域*/

pa=pa->next; /*A中指针pa后移*/

}

p->next=q; /*将q接在p的后面*/

p=q; /*p始终指向C表当前尾结点*/

}

while(pa!=NULL) /*若表A比B长,将A余下的结点链在C表尾*/

{q=(Lnode*)malloc(sizeof(Lnode));

q->data=pa->data;

pa=pa->next;

p->next=q;

p=q;

}

while(pb!=NULL) /*若表B比A长,将B余下的结点链在C表尾*/

{q=(Lnode*)malloc(sizeof(Lnode));

q->data=pb->data;

pb=pb->next;

p->next=q;

p=q;

}

p->next=NULL;

p=pc; /*p指向表C的头结点pc*/

pc=p->next; /*改变指针状态,使pc指向p的后继*/

free(p); /*释放p空间*/

return (pc);

}

此算法的时间复杂度为O(m+n),其中m,n分别是两个被合并表的表长。

第三章栈和队列

单项选择题

1.在初始为空的堆栈中依次插入元素f,e,d,c,b,a以后,连续进行了三次删除操作,此时栈顶元素是。

A. c

B.d

C.b

D. e

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

A. i

B. n-i

C. n-i+1

D. 哪个元素无所谓

3.向一个栈顶指针为h的带头结点链栈中插入指针s所指的结点时,应执行。

A. h->next = s;

B. s->next = h;

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

D. s->next = h->next; h->next=s;

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

A. edcba

B. decba

C. dceab

D. abcde

5.栈和队列的共同点是。

A. 都是先进后出

B. 都是先进先出

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

D. 没有共同点

6.对于循环队列。

A. 无法判断队列是否为空

B. 无法判断队列是否为满

C. 队列不可能满

D. 以上说法都不是

7. 若用一个大小为6的数组来实现循环队列,且当前队尾指针rear和队头指针front的值分别为0和3。当从队列中删除一个元素,再加入两个元素后,rear和front的值分别为。

A. 1和5

B. 2和4

C. 4和2

D. 5和1

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

A. QU->front==QU->rear

B. QU->front!=QU->rear

C. QU->front==(QU->rear+1) % m0

D. QU->front!=(QU->rear+1) % m0

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

A. QU->front==QU->rear

B. QU->front!=QU->rear

C. QU->front==(QU->rear+1) % m0

D. QU->front!=(QU->rear+1) % m0

BCDCCDACA

填空题

1.在求表达式值的算符优先算法中使用的主要数据结构是。

2.设有一个空栈,现输入序列为1,2,3,4,5。经过push,push,pop,push,pop,push,pop,push后,输出序列是。

3.仅允许在同一端进行插入和删除的线性表称为。

7.在顺序栈s中,栈为空的条件是,栈为满的条件是_____。

4.用S表示入栈操作,X表示出栈操作,若元素入栈顺序为1234,为了得到1342出栈顺

序,相应的S 、X 操作串为 。

5.用一个大小为1000的数组来实现循环队列,当前rear 和front 的值分别为0和994,若要达到队满的条件,还需要继续入队的元素个数是 。 1.栈 2. 2 3 4 3.栈

4.s.top==s.base, s.top-s.base>=s.stacksize SXSSXSXX

5.993 例题解析

【例3-1】 编程实现:用除法把十进制数转换成二进制数。

解:算法思想:用初始十进制数除以2把余数记录下来并且若商不为0则再用商去除以2直到商为0,这时把所有的余数按出现的逆序排列起来(先出现的余数排在后面,后出现的余数排在前面)就得到了相应的二进制数,如把十进制数35转换成二进制数的过程如图3-1所示。

图3-1 十进制数转换成二进制数的过程

由题意可知,我们可以用一个栈来保存所有的余数,当商为0时则让栈里的所有余数出栈则可以得到正确的二进制数,算法可描述如下:

void conversion(){ Stack S; int n; InitStack(&S);

printf("Input a number to convert:\n"); scanf("%d",&n); if(n<0){

printf("\nThe number must be over 0.");

35 17 8 4 2 1 0

1 1 0 0 1

余数 结果:10011

return;

}

if(n==0) Push(S,0);

while(n!=0){

Push(S,n%2);

n=n/2;

}

printf("the result is: ");

while(!StackEmpty(*S)){

printf("%d", Pop(S));

}

}

}

第四章串

单项选择题

1.串是一种特殊的线性表,其特殊性体现在。

A. 可以顺序存储

B. 数据元素是一个字符

C. 可以存储

D. 数据元素可以是多个字符

2.设有两个串p和q,求q在p中首次出现的位置的运算称作。

A. 连接

B. 模式匹配

C. 求子串

D. 求串长

3.串是一个 B 的序列。

A. 不少于一个字母

B. 有限个字符

C. 不少于一个字符

D. 空格或字母4.已知串s=’ABCDEFGH’,则s的所有不同子串的个数为。

A. 8

B. 9

C. 36

D. 37

BBBD

填空题

1.两个串相等的充分必要条件是。

2.空格串是,其长度等于。

3.在串S=’tuition’中,以t为首字符且值不相同的子串有个。

4. 使用“求子串”substring(S,pos,len)和“联接”concat(S1,S2)的串操作,可从串s=’conduction’中的字符得到串t=’cont’,则求t的串表达式为。

1.两个串的长度相等且对应位置的字符相同

2.由一个或多个空格字符组成的串其包含的空格个数

3. 10

4. concat(subString(s,1,3),substring(s,7,1))

第五章数组与广义表

单项选择题

1.常对数组进行的两种操作是。

A. 建立与删除

B. 索引和修改

C. 查找和修改

D. 查找与索引

2.假设8行10列的二维数组a[1..8, 1..10]分别以行序为主序和以列序为主序顺序存储时,其首地址相同,那么以行序为主序时元素a[3][5]的地址与以列序为主序时元素____ ___的地址相同。

A. a[5][3]

B. a[8][3]

C. a[1][4]

D. 答案A、B、C均不对

3.将一个A[1..100,1..100]的三对角矩阵以行序为主序存入一维数组B[1..298]中,元素A[66,

65]在B数组中的位置k等于____ ___。

A. 198

B. 197

C. 196

D. 195

4.稀疏矩阵一般的压缩存储方法有两种,即。

A. 二维数组和三维数组

B. 三元组和散列

C. 三元组和十字链表

D. 散列和十字链表

5. 一个非空广义表的表头____ ___。

A. 不可能是子表

B. 只能是子表

C. 只能是原子

D. 可以是原子或子表

6. 设head(L)、tail(L)分别为取广义表表头、表尾操作,则从广义表L=((x,y,z),a,(u,v,w))中取出原子u的运算为____ ___。

A. head(tail(tail(head(L))))

B. tail(head(head(tail(L))))

C. head(tail(head(tail(L))))

D. head(head(tail(tail(L))))

7.广义表(a,((b,(c,d,(e,f))),g))的深度为____ ___。

A. 3

B. 4

C. 5

D. 6

CDDCDDC

填空题

1.将下三角矩阵A[1..8,1..8]的下三角部分逐行地存储到起始地址为1000的存单元中,已知每个元素占四个单元,则元素A[7,5]的地址为。

2.二维数组A[0..9,0..19]采用行序为主方式存储,每个元素占一个存储单元,并且元素A[0,0]的存储地址是200,则元素A[6,12]的地址是。

3.二维数组A[10..20,5..10]采用行序为主方式存储,每个元素占4个存储单元,并且元素

A[10,5]的存储地址是1000,则元素A[18,9]的地址是。

4.有一个10阶对称矩阵A,采用压缩存储方式(以行序为主序存储,且元素A[0,0]地址为1),则元素A[8,5]的地址是。

5.设HAED[p]为求广义表p的表头函数,TAIL[p]为求广义表p的表尾函数,其中[] 是函数的符号,给出下列广义表的运算结果:

HEAD[(a,b,c)]的结果是。

TAIL[(a,b,c)]的结果是。

HEAD[((a),(b))]的结果是。

TAIL[((a),(b))]的结果是。

HEAD[TAIL[(a,b,c)]的结果是。

TAIL[HEAD((a,b),(c,d))]的结果是。

HEAD[HEAD[(a,b),(c,d))]]的结果是。

TAIL[TAIL[(a,(c,d))]]的结果是。

①a;②(b,c);③(a);④((b));⑤b;⑥(b);⑦a;⑧( )

1.1100

2.332

3.1208

4.42

5.①②③④⑤⑥⑦⑧

第6章树和二叉树

选择题

1.以下说法错误的是。

A.树形结构的特点是一个结点可以有多个直接前趋

B.线性结构中的一个结点至多只有一个直接后继

C.树形结构可以表达(组织)更复杂的数据

D.树(及一切树形结构)是一种"分支层次"结构

2. 如图6-2所示的4 棵二叉树中,不是完全二叉树。

图6-2 4 棵二叉树

3. 以下说法错误的是。

A.完全二叉树上结点之间的父子关系可由它们编号之间的关系来表达

B.在三叉链表上,二叉树的求双亲运算很容易实现

C.在二叉链表上,求根,求左、右孩子等很容易实现

D.在二叉链表上,求双亲运算的时间性能很好

4. 如图6-3所示的4 棵二叉树,是平衡二叉树。

图6-3 4 棵二叉树

5. 如图6-4所示二叉树的中序遍历序列是。

A. abcdgef

B. dfebagc

C. dbaefcg

D. defbagc

b

a

c

d g

e

f

图6-4 1 棵二叉树

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

A. bdgcefha

B. gdbecfha

C. bdgaechf

D. gdbehfca

7. 将含有83个结点的完全二叉树从根结点开始编号,根为1号,后面按从上到下、从左到右的顺序对结点编号,那么编号为41的双亲结点编号为。

A.42

B.40

C.21

D.20

8. 一棵二叉树如图6-5所示,其后序遍历的序列为。

A. abdgcefh

B. dgbaechf

C. gdbehfca

D. abcdefgh

图6-5 1 棵二叉树

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

A. 16

B. 32

C.31

D.10

10. 设深度为k的二叉树上只有度为0和度为2的节点,则这类二叉树上所含结点总数至少有个。

A.k+1

B.2k

C.2k-1

D.2k+1

11. 对含有 B 个结点的非空二叉树,采用任何一种遍历方式,其结点访问序列均相同。

A.0

B.1

C.2

D.不存在这样的二叉树

1-5 ACDBB

6-10 DDCCC

填空题

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

图6-7 1 棵二叉树

(1)这棵树的根结点是;

(2)这棵树的叶子结点是;

(3)结点k3 的度是;

(4)这棵树的度为;

(5)这棵树的深度是;

(6)结点k3 的孩子是;

(7)结点k3 的双亲结点是。

2. 深度为k 的完全二叉树至少有个结点,至多有个结点,若按自上而下,从左到右次序给结点编号(从1 开始),则编号最小的叶子结点的编号是。

答:①21-k②2k-1 ③22-k+1

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

答:①21-i②

??n

log

2③??1

2log-

n

4. 具有n个结点的完全二叉树的深度为。

5. 哈夫曼树是带权路径度_______的树,通常权值较大的结点离根_______。

①最短②较近

6.在________遍历二叉树的序列中,任何结点的子树上的所有结点,都是直接跟在该结点之后。

1.答:①k1 ②k2 k5 k7 k4 ③ 2 ④ 3 ⑤ 4 ⑥k5,k6 ⑦k1

2. ①②③

3. ①②③

4.floor(log2n)+1

5. ①②

6. 先根

例题解析

【例6-1】由如图6-1 所示的二叉树,回答以下问题。

(1)其中序遍历序列为①;

(2)其前序遍历序列为②;

(3)其后序遍历序列为③;

(4)该二叉树的中序线索二叉树为④;

(5)该二叉树的后序线索二叉树为⑤;

(6)该二叉树对应的森林是⑥。

b a

c

d e

g h

f

i

图6-1 1棵二叉树

解:

①中序遍历序列为dgbaechif ②前序遍历序列为abdgcefhi

③后序遍历序列为gdbeihfca ④该二叉树的中序线索二叉树如图 6.1.1(a)所示

⑤该二叉树的后序线索二叉树如图6-1-1 (b)所示

⑥该二叉树对应的森林如图6-1-2所示

图6-1-1 二叉树的中序线索二叉树和后序线索二叉树

b

a

e d f

d

i

h

g

图6-1-2 二叉树对应的森林

综合题

1.二叉树结点数值采用顺序存储结构,如表6-2所示。

表6-2 二叉树的顺序存储结构

1 2 3 4 5 6 7 8 9 1

0 1

1

1

2

1

3

1

4

1

5

1

6

1

7

1

8

1

9

2

e a

f d

g c j

h

i b

(1)画出二叉树表示;

(2)写出前序遍历,中序遍历和后序遍历的结果;

(3)写出结点值c 的父结点,其左、右孩子。

解:

(1)该二叉树如图6-9 所示。

图6-9 1棵二叉树

(2)本题二叉树的各种遍历结果如下:

前序遍历:eadcbjfghi

中序遍历:abcdjefhgi

后序遍历:bcjdahigfa

(3)c 的父结点为d,左孩子为j,没有右孩子。

2.有一份电文中共使用5 个字符:a、b、c、d、e,它们的出现频率依次为4、7、5、2、9,试画出对应的哈夫曼树(请按左子树根结点的权小于等于右子树根结点的权的次序构造),

并求出每个字符的哈夫曼编码。

解:依题意,本题对应的哈夫曼树如图6-15 所示。

各字符对应的哈夫曼编码如下:

a:001

b:10

c:01

d:000

e:11

图6-15 一棵哈夫曼树

3.设给定权集w={2,3,4,7,8,9},试构造关于w 的一棵哈夫曼树,并求其加权路径长度WPL。

解:本题的哈夫曼树如图6-16 所示。

图6-16 一棵哈夫曼树

其加权路径长度WPL=7×2+8×2+4×3+2×4+3×4+9×2=80

4. 已知一棵二叉树的中序序列为cbedahgijf,后序序列为cedbhjigfa,画出该二叉树的先序线索二叉树。

解:由后序序列的最后一个结点 a 可推出该二叉树的树根为a,由中序序列可推出a 的左子树由cbed 组成,右子树由hgijf 组成,又由cbed 在后序序列中的顺序可推出该子树的根结点为b,其左子树只有一个结点c,右子树由ed 组成,显然这里的e 是根结点,其右子树为结点d,这样可得到根结点a 的左子树的先序序列为:bcde;再依次推出右子树的先序序列为:fghij。因此该二叉树如图6-17所示。

图6-17 二叉树设二叉树的先序线索链表如图6-18所示。

图6-18 二叉树的先序线索链表

第7章图

单项选择题

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

A. 1/2

B. 1

C. 2

D. 4

2.在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的 B 倍。A. 1/2 B. 1 C. 2 D. 4

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

A. 6

B. 12

C. 16

D. 20

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

A. 5

B. 6

C. 7

D. 8

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

A. n

B. n+1

C. n-1

D. n/2

6.对于一个具有n 个顶点的无向图,若采用邻接矩阵表示,则该矩阵的大小是。A. n B. (n-1)2 C. n-1 D. n2

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

A. e/2

B. e

C. 2e

D. n+e

8.已知一有向图的邻接表存储结构如图7-2 所示。

(1)根据有向图的深度优先遍历算法,从顶点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

(2)根据有向图的广度优先遍历算法,从顶点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

图7-2一个有向图的邻接表存储结构

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

A. 求关键路径的方法

B. 求最短路径的Dijkstra 方法

C. 广度优先遍历算法

D. 深度优先遍历算法

1-5.CBAAC

6-9 DCCBD

填空题

1.n 个顶点的连通图至少条边。

2.在无向图G 的邻接矩阵A 中,若A[i][j]等于1,则A[j][i]等于。

3.已知图G的邻接表如图7-3 所示,其从顶点v1 出发的深度优先搜索序列为,其从顶点v1 出发的广度优先搜索序列为。

图7-3 G的邻接表

4.设x,y是图G中的两顶点,则(x,y)与(y,x)被认为______边,但是______的两条弧。答:①无向,②有向

5.已知一个图的邻接矩阵表示,删除所有从第i 个结点出发的边的方法是。6.在有向图的邻接矩阵上,由第i行可得到第______个结点的出度,而由第j列可得到第___ ____个结点的入度。①i ②j

7. 在无向图中,如果从顶点v到顶点v’有路径,则称v和v’是______的。如果对于图中的任意两个顶点vi,vj∈V,且vi和vj都是连通的,则称G为______。①连通,②连通图

1.n-1

2. 1

3.答:①v1,v2,v3,v6,v5,v4 ②v1,v2,v5,v4,v3,v6

4.①②

5. 将矩阵第i 行全部置为0

5.①②

6.①②

例题解析

【例7-1】对m个顶点的无向图G,采用邻接矩阵,如何判别下列有关问题:(1)图中有多少条边?

(2)任意两个顶点i和j是否有边相连?

(3)任意一个顶点的度是多少?

解:

⑴邻接矩阵非零元素个数的总和除以2。

⑵当A[ i,j ]≠0时,表示两顶点i,j之间有边相连。

⑶计算邻接矩阵上顶点对应行上非零元素的个数。

综合题

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

图7-4 无向图G

解:图G 对应的邻接矩阵和邻接表两种存储结构分别如图所示。

数据结构考试试题及答案

数据结构 一、单选题 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)

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

一、单选题(每题 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.循环链表 2.设计一个判定表达式中左、右括号是否配对出现的算法,采用【】数据结构最佳。 A.集合B.线性表C.队列D.栈 3.n个结点的线索二叉树上含有的线索数为【】。 A.2n B.n-1 C.n D.n+1 4.设广义表D=(a,(b,c)),则tail(D)=【】。 A.b,c B.(b,c) C.((b,c)) D.c 5.由4个结点可以构造出【】种不同的二叉树。 A.12 B.13 C.14 D.15 6.在栈中,出栈操作的时间复杂度为【】。 A.O(1) B.O(n) C.O(log2n) D.O(n2) 7.假设Q[0..len-1]表示循环队列,f为队头指针,r为队尾指针,则进队操作语句是【】。 A.f=f+1 B.r=r+1 C.f=(f+1)%len D.r=(r+1)%len 8.一个n*n的对称矩阵,如果以行或列为主序放入内存,则其容量为【】。 A.n*n B.n*n/2 C.n*(n+1)/2 D.(n+1)*(n+1)/2 9.队列操作的原则是【】。 A.进优于出B.出优于进C.先进先出D.后进先出 10.下列数据结构中,【】是非线性数据结构。 A.栈B.串C.队列D.树 11.两个指针p和q,分别指向单链表的两个元素,p所指元素是q所指元素的前驱,则【】。 A.p==q B.q->next=p C.p->next=q D.p->next=q->next 12.数组A中,每个元素的长度为4个字节,行下标i从1到5,列下标j从1到4,从首 地址SA开始连续存放在存储器内,该数组按行存放时,元素A[3][2]的起始地址为【】。 A.SA+20 B.SA+36 C.SA+40 D.SA+45 13.已知一个顺序存储的线性表,设每个结点需占m个存储单元,若第一个结点的地址为d1, 则第i个结点的地址为【】。 A.d1+(i-1)*m B.d1+i*m C.d1+(i+1)m D.d1-i*m 14.分析下列算法suanfa1(n)的时间复杂度是【】。 void suanfa1(int n) { int i,j,x=1; for(i=0;i

数据结构试题及答案

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

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

《数据结构》题库及答案

《数据结构》题库及答案 一、选择题 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 分,共15分) 1.计算机程序处理的对象可分为数据和非数据两大类。 2.全体自然数按大小关系排成的序列是一个线性表。 3.在描述单向链表的结点类型时,必须首先描述数值字段,然后再描述指针字段。 4.顺序栈是一种规定了存储方法的栈。 5.树形结构中的每个结点都有一个前驱。 6.在任何一棵完全二叉树中,最多只有一个度为1的分支结点。 7.若某顶点是有向图的根,则该顶点的入度一定是零。 8.如果某图的邻接矩阵有全零的行,没有全零的列,则该图一定是有向图。 9.用一维数组表示矩阵可以节省存储空间。 10.广义表的长度与广义表中含有多少个原子元素有关。 11.分块查找的效率与线性表被分成多少块有关。 12.散列表的负载因子等于存入散列表中的结点个数。 13.在起泡排序过程中,某些元素可能会向相反的方向移动。 14.按某种逻辑关系组织起来的记录的集合称为逻辑记录。 15.索引非顺序文件的特点是索引表中的索引项不一定按关键字大小有序排列。 二、填空题(每空1分,共15分) 1.顺序表是一种_____________线性表。 2.若用Q[1]~Q[m]作为非循环顺序队列的存储空间,则对该队列最多只能执行___次插入操作。 3.栈和队列的区别在于________的不同。 4.在高度为h(h≥0)的二叉树中至少有___个结点,至多有___个结点。 5.若用二叉链表来存储具有m个叶子,n个分支结点的树,则二叉链表中有___个左指针域为空的结点,有___个右指针域 为空的结点。 6.n个顶点的有根有向图中至少有___条边,至多有___条边。 7.10行20列矩阵若用行优先顺序表来表示,则矩阵中第8行第7列元素是顺序表中第___个元素。 8.在各元素查找概率相等的情况下,用顺序查找方法从含有12个元素的有序表中查找一个元素,元素间的平均比较次数是 _____。 9.在归并两个长度为m的有序表时,排序码的比较次数至少是___次,至多是___次。 10.在高度为3的6阶B-树中,至少有___个关键字,至多有___个关键字。 三、选择题(每题2分,共30分) 1.计算机所处理的数据一般具有某种内在联系性,这是指________。 A.元素和元素之间存在某种关系B.数据和数据之间存在某种关系 C.元素内部具有某种结构D.数据项和数据项之间存在某种关系 2. 假设顺序表目前有4个元素,第i个元素放在R[i]中,1≤i≤4 。若把新插入元素存入R[6],则________。 A.会产生运行错误B.R[1]~R[6]不构成一个顺序表 C.顺序表的长度大于顺序表元素个数,会降低存储空间利用率 D.顺序表元素序号和数组元素下标不一致,会给使用带来麻烦 3. 设H是不带表头结点循环单向链表的表头指针,P是和H同类型的变量。当P指向链表最后一个结点时,_________。A.P所指结点指针字段的值为空B.P的值与H的值相等 C.P所指结点的地址与H的值相等D.P所指结点指针字段的值与H的值相等 4. 栈的定义不涉及数据的__________。 A.逻辑结构B.存储结构C.运算D.逻辑结构和存储结构 5. 设5个元素进栈的顺序是1,2,3,4,5,则出栈的顺序有可能是___________。 A.2,4,1,3,5 B.3,4,1,5,2 C.3,2,4,1,5 D.4,1,3,2,5 6. 若某棵二叉树结点的前序序列和中序序列相同,则该二叉树_________。 A.只有一个结点B.每个结点都没有左孩子C.每个结点都没有右孩子D.不存在 7.对于一棵具有n个结点,度为3的树来说,____________。 A.树的高度至多是n-3 B.树的高度至多是n-2 C.树的最低高度是┏log3(n+1)┓ D.至少在某一层上正好有3个结点 8.n个顶点的有向图如果可以进行拓扑排序,则可以断定该有向图__________。 A.含n个强连通分量B.有唯一的入度为0的顶点C.有多个出度为0的顶点 D.是一个有根有向图 9. 特殊矩阵用行优先顺序表表示,_____________ A.简化了矩阵元素之间的逻辑关系B.便于按行处理矩阵元素

数据结构试题及答案(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 )

《数据结构》模拟试卷一及答案

模拟试卷一 一、单选题(每题 2 分,共20分) 1.以下数据结构中哪一个是线性结构?( ) A. 有向图 B. 队列 C. 线索二叉树 D. B树 2.在一个单链表HL中,若要在当前由指针p指向的结点后面插入一个由q指向的结点, 则执行如下( )语句序列。 A. p=q; p->next=q; B. p->next=q; q->next=p; C. p->next=q->next; p=q; D. q->next=p->next; p->next=q; 3.以下哪一个不是队列的基本运算?() A. 在队列第i个元素之后插入一个元素 B. 从队头删除一个元素 C. 判断一个队列是否为空 D.读取队头元素的值 4.字符A、B、C依次进入一个栈,按出栈的先后顺序组成不同的字符串,至多可以组成 ( )个不同的字符串? A.14 B.5 C.6 D.8 5.由权值分别为3,8,6,2的叶子生成一棵哈夫曼树,它的带权路径长度为( )。 A. 11 B.35 C. 19 D. 53 图一 6.该二叉树结点的前序遍历的序列为( )。 A.E、G、F、A、C、D、B B. E、A、G、C、F、B、D C. E、A、C、B、D、G、F D. E、G、A、C、D、F、B 7.该二叉树结点的中序遍历的序列为( )。 A. A、B、C、D、E、G、F B. E、A、G、C、F、B、D C. E、A、C、B、D、G、F D. B、D、C、A、F、G、E 8.该二叉树的按层遍历的序列为( )。 A.E、G、F、A、C、D、B B. E、A、C、B、D、G、F C. E、A、G、C、F、B、D D. E、G、A、C、D、F、B 9.下面关于图的存储的叙述中正确的是( )。 A.用邻接表法存储图,占用的存储空间大小只与图中边数有关,而与结点个数无关B.用邻接表法存储图,占用的存储空间大小与图中边数和结点个数都有关 C. 用邻接矩阵法存储图,占用的存储空间大小与图中结点个数和边数都有关 D.用邻接矩阵法存储图,占用的存储空间大小只与图中边数有关,而与结点个数无关10.设有关键码序列(q,g,m,z,a,n,p,x,h),下面哪一个序列是从上述序列出发建 堆的结果?( )

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

数据结构习题及参考答案

习题1 一、单项选择题 A1.数据结构是指()。 A.数据元素的组织形式 B.数据类型 C.数据存储结构 D.数据定义 C2.数据在计算机存储器内表示时,物理地址与逻辑地址不相同的,称之为()。 A.存储结构 B.逻辑结构 C.链式存储结构 D.顺序存储结构 D3.树形结构是数据元素之间存在一种()。 A.一对一关系 B.多对多关系 C.多对一关系 D.一对多关系 B4.设语句x++的时间是单位时间,则以下语句的时间复杂度为()。 for(i=1; i<=n; i++) for(j=i; j<=n; j++) x++; A.O(1) B.O(2n) C.O(n) D.O(3n) CA5.算法分析的目的是(1),算法分析的两个主要方面是(2)。 (1) A.找出数据结构的合理性 B.研究算法中的输入和输出关系 C.分析算法的效率以求改进 D.分析算法的易懂性和文档性 (2) A.空间复杂度和时间复杂度 B.正确性和简明性 C.可读性和文档性 D.数据复杂性和程序复杂性 6.计算机算法指的是(1),它具备输入,输出和(2)等五个特性。 (1) A.计算方法 B.排序方法 C.解决问题的有限运算序列 D.调度方法 (2) A.可行性,可移植性和可扩充性 B.可行性,确定性和有穷性 C.确定性,有穷性和稳定性 D.易读性,稳定性和安全性 7.数据在计算机内有链式和顺序两种存储方式,在存储空间使用的灵活性上,链式存储比顺序存储要()。 A.低 B.高 C.相同 D.不好说 8.数据结构作为一门独立的课程出现是在()年。 A.1946 B.1953 C.1964 D.1968 9.数据结构只是研究数据的逻辑结构和物理结构,这种观点()。 A.正确 B.错误 C.前半句对,后半句错 D.前半句错,后半句对

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

一、单项选择题 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;

数据结构模拟试卷(含答案)

数据结构设计课程代码:7399 一、单项选择题(在每小题列出的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的括号内。每小题2分,共40分) 1、串的长度是()。 A、串中不同字母的个数 B、串中不同字符的个数 C、串中所含字符的个数,且大于0 D、串中所含字符的个数 2、若用数组S[1..n]作为两个栈S1和S2的共同存储结构,对任何一个栈,只有当S全满时才不能作入栈操作。为这两个栈分配空间的最佳方案是()。 A、S1的栈底位置为0,S2的栈底位置为n+1 B、S1的栈底位置为0,S2的栈底位置为n/2 C、S1的栈底位置为1,S2的栈底位置为n D、S1的栈底位置为1,S2的栈底位置为n/2 3、队列操作的原则是()。 A、先进先出 B、后进先出 C、只能进行插入 D、只能进行删除 4、有64个结点的完全二叉树的深度为()(根的层次为1)。 A、8 B、7 C、6 D、5 5、在有n个结点的二叉链表中,值为非空的链域的个数为()。

A、n-1 B、2n-1 C、n+1 D、2n+1 6、带权有向图G用邻接矩阵A存储,则顶点i的人度等于A中()。 A、第i行非∞的元素之和 B、第i列非∞的元素之和 C、第i行非∞且非0的元素个数 D、第i列非∞且非0的元素个数 7、在有n个结点且为完全二叉树的二叉排序树中查找一个键值,其平均比较次数的数量级为()。 A、0(n) B、0(log2n) C、0(nolg2n) D、0(n2) 8、若表R在排序前已按键值递增顺序排列,则()算法的比较次数最少。 A、直接插入排序 B、快速排序 C、归并排序 D、选择排序 9、下列排序算法中,()排序在某趟结束后不一定选出一个元素放到其最终的位置上。 A、选择 B、冒泡 C、归并 D、堆

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

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

————————————————————————————————作者:————————————————————————————————日期:

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。

数据结构习题及答案精编版

第一章 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.若对线性表进行的操作主要不是插入删除,则该线性表宜采用(顺序)存储结构,若频繁地对线性表进行插入和删除操作,则该线性表宜采用( 链 )存储结构。

数据结构模拟题(开卷)

《数据结构》模拟题(开卷) 一、单项选择题 1.分析下列算法suanfa1(n): void suanfa1(int n) { int i,j,x=1; for(i=0;i

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

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.以顺序方式存储,且数据元素有序

相关文档
最新文档