数据结构与算法模拟试卷一、二及参考答案

四川大学

《数据结构与算法分析》课程

考试模拟试卷

模拟试卷一

一、单选题(每题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的叶子生成一棵哈夫曼树,它的带权路径长度为( )。

以下6-8题基于图1。

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

E.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),下面哪一个序列是从上述序列出发建

堆的结果?( )

A. a,g,h,m,n,p,q,x,z

B. a,g,m,h,q,n,p,x,z

C. g,m,q,a,n,p,x,h,z

D. h,g,m,p,a,n,q,x,z

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

1.数据的物理结构被分为_________、________、__________和___________四种。

2.对于一个长度为n的顺序存储的线性表,在表头插入元素的时间复杂度为_________,

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

3.向一个由HS指向的链栈中插入一个结点时p时,需要执行的操作是________________;

删除一个结点时,需要执行的操作是______________________________(假设栈不空而

且无需回收被删除结点)。

4.对于一棵具有n个结点的二叉树,一个结点的编号为i(1≤i≤n),若它有左孩子则左孩

子结点的编号为________,若它有右孩子,则右孩子结点的编号为________,若它有双

亲,则双亲结点的编号为________。

5.当向一个大根堆插入一个具有最大值的元素时,需要逐层_________调整,直到被调整

到____________位置为止。

6.以二分查找方法从长度为10的有序表中查找一个元素时,平均查找长度为________。

7.表示图的三种常用的存储结构为_____________、____________和_______________。

8.对于线性表(70,34,55,23,65,41,20)进行散列存储时,若选用H(K)=K %7

作为散列函数,则散列地址为0的元素有________个,散列地址为6的有_______个。

9.在归并排序中,进行每趟归并的时间复杂度为______,整个排序过程的时间复杂度为

____________,空间复杂度为___________。

10.在一棵m阶B_树上,每个非树根结点的关键字数目最少为________个,最多为________

个,其子树数目最少为________,最多为________。

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

1.写出下列中缀表达式的后缀形式:

(1)3X/(Y-2)+1

(2)2+X*(Y+3)

2.试对图2中的二叉树画出其:

(1)顺序存储表示的示意图;

(2)二叉链表存储表示的示意图。

3.判断以下序列是否是小根堆? 如果不是, 将它调

图2 整为小根堆。

(1){ 12, 70, 33, 65, 24, 56, 48, 92, 86, 33 }

(2){ 05, 23, 20, 28, 40, 38, 29, 61, 35, 76, 47, 100 }

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

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

E={(1,2)3,(1,3)5,(1,4)8,(2,5)10,(2,3)6,(3,4)15,(3,5)12,(3,6)9,(4,6)4, (4,7)20,(5,6)18,(6,7)25};

按照普里姆算法从顶点1出发得到最小生成树,试写出在最小生成树中依次得到的各条边。

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

1.void AE(Stack& S){

InitStack(S);

Push(S,3);

Push(S,4);

int x=Pop(S)+2*Pop(S);

Push(S,x);

int i,a[5]={1,5,8,12,15};

for(i=0;i<5;i++) Push(S,2*a[i]);

while(!StackEmpty(S)) cout<

}

该算法被调用后得到的输出结果为:

2.void ABC (BTNode *BT,int &c1,int &c2) {

if (BT !=NULL ) {

ABC(BT->left,c1,c2);

c1++;

if (BT->left==NULL&&BT->right==NULL) c2++;

ABC(BT->right,c1,c2);

}//if

}

该函数执行的功能是什么?

五、算法填空(共8分)

向单链表的末尾添加一个元素的算法。

Void InsertRear(LNode*& HL,const ElemType& item)

{

LNode* newptr;

newptr=new LNode;

If (______________________)

{

cerr<<"Memory allocation failare!"<

exit(1);

}

________________________=item;

newptr->next=NULL;

if (HL==NULL)

HL=__________________________;

else{

LNode* P=HL;

While (P->next!=NULL)

____________________;

p->next=newptr;

}

}

六、编写算法(共8分)

编写从类型为List的线性表L中将第i个元素删除的算法,(假定不需要对i的值进行有效性检查,也不用判别L是否为空表。)

void Delete(List& L, int i)

模拟试卷一参考答案

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

1.B

2.D

3.A

4.B

5.B

6.C

7.A

8.C

9.B 10.B

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

1.顺序链表索引散列

2.O(n) O(1)

3.p->next=HS;HS=p HS=HS->next

4.2i 2i+1 ⎣i/2⎦(或i/2)

5.向上根

6. 2.9

7.邻接矩阵邻接表边集数组

8. 1 4

9.O(n) O(nlog2n) O(n)

10.⎡m/2⎤-1 m-1 ⎡m/2⎤ m

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

1.(1) 3 X * Y 2 - / 1 +

图3

(2) 2 X Y 3 + * +

2.(1)

3.(1)不是小根堆。调整为:{12,65,33,70,24,56,48,92,86,33}

(2)是小根堆。

4.普里姆算法从顶点1出发得到最小生成树为:

(1,2)3, (1,3)5, (1,4)8, (4,6)4, (2,5)10, (4,7)20

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

1.30 24 16 10 2 10

2.该函数的功能是:统计出BT所指向的二叉树的结点总数和叶子总数

五、算法填空(共8分,每一空2分)

newptr==NULL newptr->=data newptr p=p->next

六、编写算法(8分)

void Delete(List& L, int i)

{

for(int j=i-1;j

L.list[j]=L.list[j+1]; //第i个元素的下标为i-1 L.size--;

}

模拟试卷二

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

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

点,则执行( )。

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

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

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

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

2.若顺序存储的循环队列的QueueMaxSize=n,则该队列最多可存储()个元素.

A. n

B.n-1

C. n+1

D.不确定

3.下述哪一条是顺序存储方式的优点?()

A.存储密度大 B.插入和删除运算方便

C. 获取符合某种条件的元素方便

D.查找运算速度快

4.设有一个二维数组A[m][n],假设A[0][0]存放位置在600(10),A[3][3]存放位置在

678(10),每个元素占一个空间,问A[2][3](10)存放在什么位置?(脚注(10)表示用10进制表示,m>3)

A.658 B.648 C.633 D.653

5.下列关于二叉树遍历的叙述中,正确的是( ) 。

A. 若一个树叶是某二叉树的中序遍历的最后一个结点,则它必是该二叉树的前序遍历最后一个结点

B.若一个点是某二叉树的前序遍历最后一个结点,则它必是该二叉树的中序遍历的最后一个结点

C.若一个结点是某二叉树的中序遍历的最后一个结点,则它必是该二叉树的前序最后一个结点

D.若一个树叶是某二叉树的前序最后一个结点,则它必是该二叉树的中序遍历最后一个结点

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

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

7.对线性表进行二分法查找,其前提条件是( ).

A.线性表以链接方式存储,并且按关键码值排好序

B.线性表以顺序方式存储,并且按关键码值的检索频率排好序

C.线性表以顺序方式存储,并且按关键码值排好序

D.线性表以链接方式存储,并且按关键码值的检索频率排好序

8.对n个记录进行堆排序,所需要的辅助存储空间为

A. O(1og2n)

B. O(n)

C. O(1)

D. O(n2)

9.对于线性表(7,34,77,25,64,49,20,14)进行散列存储时,若选用H(K)

=K %7作为散列函数,则散列地址为0的元素有()个,

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

10.下列关于数据结构的叙述中,正确的是( ).

A.数组是不同类型值的集合

B.递归算法的程序结构比迭代算法的程序结构更为精炼

C.树是一种线性结构

D.用一维数组存储一棵完全二叉树是有效的存储方法

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

1.数据的逻辑结构被分为_________、________、__________和___________四种。

2.一个算法的时间复杂度为(3n3+2000n log2n+90)/n2,其数量级表示为________。

3.对于一个长度为n的单链存储的队列,在表头插入元素的时间复杂度为_________,在

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

4.假定一棵树的广义表表示为A(D(E,G),H(I,J)),则树中所含的结点数为__________

个,树的深度为___________,树的度为_________。

5.后缀算式79 2 30 + - 4 2 / *的值为__________。中缀算式(3+X*Y)-2Y/3对

应的后缀算式为_______________________________。

6.在一棵高度为5的理想平衡树中,最少含有_______个结点,最多含有_______个结点。

7.在树中,一个结点的直接后继结点称为该结点的________。一个结点的直接前趋结点称

为该结点的________。

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

有向完全图中,包含有________条边。

9.假定一个线性表为(12,17,74,5,63,49,82,36),若按Key % 4条件进行划分,使得同一余数

的元素成为一个子表,则得到的四个子表分别为____________________________、___________________、_______________________和__________________________。

10.对一棵B_树进行删除元素的过程中,若最终引起树根结点的合并时,会使新树的高度

比原树的高度___________。

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

过程的时间复杂度为________。

12.在线性表的散列存储中,装填因子α又称为装填系数,若用m表示散列表的长度,n表

示待散列存储的元素的个数,则α等于________。

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

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

A 0 1 2 3 4 5 6 7

data

next

2.已知一棵二叉树的前序遍历的结果是ABKCDFGHIJ, 中序遍历的结果是KBCDAFHIGJ, 试画出这棵二叉树。

3.已知一个图的顶点集V为:V={1,2,3,4,5,6,7};

其共有10条边。该图用如下边集数组存储:

起点

终点

4.画出向小根堆中加入数据4, 2, 5, 8, 3, 6, 10, 1时,每加入一个数据后堆的变化。

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

1.在下面的每个程序段中,假定线性表La的类型为List,元素类型ElemType为int,

并假定每个程序段是连续执行的。试写出每个程序段执行后所得到的线性表La。

(1)InitList(La);

Int a[]={100,26,57,34,79};

For (i=0;i<5;i++)

Insert(La,a[i]);

TraverseList(La);

(2)DeleteFront(La);

InsertRear(La, DeleteFront(La));

TraverseList(La);

(3)ClearList(La);

For (i=0;i<5;i++)

InsertFront(La,a[i]);

TraverseList(La);

2.现面算法的功能是什么?

void ABC(BTNode * BT)

{

if BT {

cout<data<<' ';

ABC(BT->left);

ABC(BT->right);

}

}

五、算法填空(共8分)

二分查找的递归算法。

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

{

if ___________________{

int mid=(low+high)/2;

if (_____________________) return mid; //查找成功,返回元素的下标 else if (K

return Binsch(A,low,mid-1,K); //在左子表上继续查找 else return_____________________________; //在右子表上继续查找 }

else ________________; //查找失败,返回-1

}

六、编写算法(共8分)

HL为单链表的表头指针,试写出在该单链表中查找具有给定的元素item的算法。

bool Find(LNode* HL, ElemType &item)

模拟试卷二参考答案

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

1.B

2.B

3.A

4.C

5.D

6.A

7.C

8.C

9.D 10.D

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

1.集合结构线性结构树结构图结构

2.O(n)

3.O(1) O(1)

4.7 2 2

5.94 3 X Y * + 2 Y * 3 / -

6.16 31

7.孩子(或子)结点双亲(或父)结点

8. 45 n(n-1)

9. (12,36) (17,5,49) (74,82) (63) 10. 减少1(或减少) 11. O(log 2n) O(nlog 2n) 12. n/m 三、 运算题(每题6分,共24分) 1. 线性表为:(90,40,78,50,34,60)

2. 当前序序列为ABKCDFGHIJ ,中序序列为KBCDAFHIGJ 时,逐步形成二叉树的过程

如下图4所示:

3. 用克鲁斯卡尔算法得到的最小生成树为:

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

5

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

1. (1) La=(26,34,57,79,100)

(2)La=(57,79,100,34)

(3)La=(79,34,57,26,100) 2.

前序遍历链式存储的二叉树。 五、 算法填空(每空2分,共8 分)

(low<=high) K==A[mid].key Binsch(A,mid+1,hight,K) return -1 六、

编写算法(8分)

bool Find(LNode* HL, ElemType &item) {

LNode* p=HL; while p

if (p->data==item){ return true; }

else p=p->next; return false;

}

数据结构模拟题及答案

数据结构模拟题及答案 一、填空题(每小题 1 分,共 20 分): 1、栈是一种 _____________的线性表,队列是一种_____________的线性表(要求填特性)。 2、___________________是数据的基本单位,可由若干个_______________ 组成,______________是数据的最小单位。 3、具有 354个结点的完全二叉树深度为 ________________,树中度为1的结点数为______________。 4、数组的运算有______________________________________ 和____________________________。 5、稀疏矩阵的压缩存储一般采用_____________________________存储方式。 6、广义表运算:tail ((( a, b ), ( c , ( d, e )))) = _______________________ 。 7、数据结构中评价算法的两个重要指标是__________ 、__________ 。 8、一个算法具有 5个特性: 、、,有零个或多个输入、有一个或多个输出。

9、已知指针p指向单链表L中的某结点,则删除其后继结点的语句是: 。 10、Prim(普里姆)算法适用于求______ 的网的最小生成树;kruskal(克鲁斯卡尔)算法适用于求 ______ 的网的最小生成树。 11、 N个顶点的连通图的生成树含有 ______ 条边。 12、顺序查找 n个元素的顺序表,若查找成功,则比较关键字的次数最多为 __ __ 次;当使用监视哨时,若查找失败,则比较关键字的次数为_ _ __ 。 13、若不考虑基数排序,则在内排序过程中,主要进行的两种基本操作是关键字的 __________ 和记录的 _________ 。 14、直接插入排序用监视哨的作用是 ___________________。 15、一个字符串中 ________________ 称为该串的子串。 16 . 广义表(a,(a,b),d,e,((i,j),k))的长度是 _ ,深度是 _ 。 17. 在二叉树中,指针p所指结点为叶子结点的条件是 ______ 。 18. 有数据WG={7,19,2,6,32,3,21,10},则所建Huffman树的树高是 _ __ ,带权路径长度WPL为 _ __ 。 19. 求图的最小生成树有两种算法,______ 算法适合于求稀疏图的最小生成树。

数据结构模拟试卷及参考答案

数据结构模拟试卷(一)及参考答案 一.单项选择题(本大题共15小题,每小题2分,共30分) 1.如果只想得到1024个元素组成的序列中的前5个最小元素,那么用( A )方法最快。 A、起泡排序 B、快速排序 C、堆排序 D、直接选择排序 2.算法分析的目的是(B) A.辨别数据结构的合理性 B.评价算法的效率 C.研究算法中输入与输出的关系 D.鉴别算法的可读性 3.在线性表的下列运算中,不改变数据元素之间结构关系的运算是(C)A.插入B.删除 C.定位D.排序 4.若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,则可能出现的出栈序列为(D) A.3,2,6,1,4,5 B.5,6,4,2,3,1 C.1,2,5,3,4,6 D.3,4,2,1,6,5 5.设串sl=″DataStructureswithJava″,s2=″it″,则子串定位函数index(s1,s2)的值为(A) A.15 B.16 C.17 D.18 6.一个顺序存储的线性表的第一个元素的存储地址是100,每个元素的长度为4,则第4个元素的存储地址是(B)。 A. 108 B. 112 C. 116 D. 120 7.从一个具有n个结点的单链表中查找其值等于x的结点,在查找成功的情况下,平均需要比较(C)个结点。 A. n B. n/2 C. (n+1)/2 D. (n-1)/2 8.在任意一棵二叉树的前序序列和后序序列中,各叶子之间的相对次序关系(D)A.不一定相同 B.互为逆序 C.都不相同D.都相同 9.高度为5的二叉树至多有结点数为(A) A. 63 B. 32 C. 24 D.64 10.若用邻接矩阵表示一个有向图,则其中每一列包含的″1″的个数为(B)A.图中每个顶点的出度B.图中每个顶点的入度 C.图中弧的条数D.图中连通分量的数目 11.图的邻接矩阵表示法适用于表示(C) A.无向图B.有向图C.稠密图D.稀疏图12.在一个单链表中,若p所指的结点不是最后一个结点,在p之后插入s所指的结点,则执行(D)。 A. s->next=p; p->next=s B. p-next=s; s->next=p C. p=s; s->next=p->next D. s->next=p->next; p->next=s 13.下列排序算法中,其时间复杂度和记录的初始排列无关的是(A)A.直接选择排序B.插入排序 C.快速排序D.冒泡排序 14.若有序表的关键字序列为(b,c,d,e,f,g,q,r,s,t),则在二分查找关键字b的过程中,先后进行比较的关键字依次为(B) A.f,d,b B.f,c,b C.g,c,b D.g,d,b

数据结构试卷带答案

数据结构试卷(一) 一、选择题(20分) 1.组成数据的基本单位是( 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的度数数为(8.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) 希尔排序 二、填空题(30分) 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

数据结构习题答案全真模拟题试题

数据结构习题答案全真模拟题试题 第一章概论 一、名词解释 数据表示2.数据处理3.数据4.数据元素5.逻辑关系6.逻辑结构7.结构 8.运算9.基本运算10.存储结构11.顺序存储结构12.链式存储结构 13.索引存储结构 14.散列存储结构 15.算法 16.运行终止的程序可执行部分 17.伪语言算法 18.非形式算法 19.时空性能 20.时间复杂性 21.数据结构 二、填空题 1.计算机专业人员必须完成的两项基本任务是:_________和__________。 2.数据在计算机存储器中的存在形式称为_________。 3.概括地说,数据结构课程的主要内容包括: 数据的__________、定义在_________、数据的__________的实现。此外,该课程还要考虑各种结构和实现方法的__________。 4.由一种__________结构和一组__________构成的整体是实际问题的一种数学模型,这种数学模型的建立、选择和实现是数据结构的核心问题。 5.存储结构是逻辑结构的__________实现。 6.数据表示任务是逐步完成的,即数据表示形式的变化过程是__________->__________->__________。 7.数据处理任务也是逐步完成的,即转化过程是__________->__________->__________。 8.从数据结构的观点看,通常所说的"数据"应分成三个不同的层次,即__________、__________和__________。 9.根据需要,数据元素又被称为__________、__________、__________或__________。

数据结构试题及答案(十套)

数据结构试题及答案(十套)数据结构试题及答案(十套) 一、选择题 1. 数据结构是指()。 A. 存储数据的方式 B. 数据的逻辑结构和物理结构 C. 数据的存储结构和存储方式 D. 数据的逻辑结构、存储结构和存储方式 答案:D 2. 在数据结构中,线性表的存储方式包括()。 A. 顺序存储和链式存储 B. 数组存储和链表存储 C. 顺序存储、链表存储和索引存储 D. 顺序存储、链表存储和树形存储 答案:A 3. 栈是一种()的数据结构。 A. 先进先出

B. 先进后出 C. 后进先出 D. 后进后出 答案:C 4. 队列是一种()的数据结构。 A. 先进先出 B. 先进后出 C. 后进先出 D. 后进后出 答案:A 5. 二叉树中,度为0的节点称为()。 A. 叶子节点 B. 根节点 C. 中间节点 D. 子节点 答案:A 6. 以下哪个排序算法是稳定的?

A. 快速排序 B. 选择排序 C. 插入排序 D. 希尔排序 答案:C 7. 图中表示顶点之间关系的边的数量称为()。 A. 顶点度数 B. 边数 C. 路径数 D. 网络 答案:B 8. 哈希表通过()来实现高效的查找操作。 A. 散列函数 B. 排序算法 C. 遍历操作 D. 顺序存储 答案:A

9. 平衡二叉树是一种具有左右子树高度差不超过()的二叉树。 A. 0 B. 1 C. 2 D. 3 答案:B 10. 在链表中,删除节点的操作时间复杂度是()。 A. O(1) B. O(logn) C. O(n) D. O(nlogn) 答案:A 二、填空题 1. 在顺序存储结构中,元素之间的逻辑关系由()表示。 答案:下标 2. 二叉查找树的中序遍历结果是一个()序列。 答案:递增 3. 哈希表通过散列函数将关键字映射到()上。

大学_算法与数据结构模拟试题及参考答案

算法与数据结构模拟试题及参考答案 算法与数据结构模拟试题一、单选题 1. 数据结构针对数据对象,要研究其___________,逻辑结构及其操作。 2. 算法设计要求达到以下目标:___________、可读性、健壮性、高效率与低存储要求。 3. 栈的特点是___________,因此栈又称为___________表。 4. 队列的特点是___________,因此队列又称为___________表。 5. 假定二叉树的数据域为data, 左右子树的指针域分别是lChild和rChild,指向根结点的'指针为t, 完善以下二叉树前序遍历的算法。Preorder(t) { ___________; ___________; if (t==NULL) return; Printf(t-data); } 6. 冒泡排序算法在最好情况下,比较次数是___________。 7. 针对插入与删除操作,顺序文件效率不高。如果需要在顺序文件上实现插入与删除操作,解决问题的基本方法是___________。 8. 下面的算法是从数组a中删除第i个元素起的k个元素。试补充完整程序。 /__ ArraySize 指数据的尺寸,last是数据中已有的元素个数.__/ Algorithm delK(int a[ArraySize], int i, int k, int last) If (!(( K = 0) (1 = i +k i +k = last ) ( 0 = last last = arrary)) { /__ 判断参数合法性 __/ Printf(“Error !”); Else For (count = 1; count = k; count++) { /__ 删除一个元素 __/ For(j = last; j= i +1; j--) ___________; Last = last – 1; }}

数据结构与算法复习题库含答案

数据结构复习题 第一章概论 一、选择题 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 )。 fori0;im;i++ forj0;jn;j++ a[i][j]i*j; A. Om2 B. On2 C. Om*n D. Om+n 6、算法是( D )。

A. 计算机程序 B. 解决问题的计算方法 C. 排序算法 D. 解决问题的有限运算序列 7、某算法的语句执行频度为(3n+nlog2n+n2+8),其时间复杂度表示( C )。 A. On B. Onlog2n C. On2 D. Olog2n 8、下面程序段的时间复杂度为( C )。 i1; whilein ii*3; A. On B. O3n C. Olog3n D. On3 9、数据结构是一门研究非数值计算的程序设计问题中计算机的数据元素以及它们之间的( B )和运算等的学科。 A. 结构 B. 关系 C. 运算 D. 算法 10、下面程序段的时间复杂度是( A )。 is0; whilesn i++;s+i; A. On B. On2 C. Olog2n D. On3 11、抽象数据类型的三个组成部分分别为( A )。 A. 数据对象、数据关系和基本操作 B. 数据元素、逻辑结构和存储结构 C. 数据项、数据元素和数据类型 D. 数据元素、数据结构和数据类型 12、通常从正确性、易读性、健壮性、高效性等4个方面评价算法的质量,以下解释错误的是(D)。

数据结构与算法 试题及答案

绪论 一、填空题 1、数据的逻辑结构是数据元素之间的逻辑关系,通常有下列4类:集合_、线性结构_、树型结构_、图状结构_。 2、数据的存储结构是数据在计算机存储器里的表示,主要有4种基本存储方法:顺序存储_、链式存储_、索引存储_、散列存储_。 二、选择题 1、一个算法必须在执行有穷步之后结束,这是算法的(B )。 A、正确性 B、有穷性 C、确定性 D、可行性 2、算法的每一步必须有确切的定义,也就是说,对于每步需要执行的动作必须严格、清楚地给出规定,这是算法的(A)。 A、正确性 B、有穷性 C、确定性 D、可行性 3、算法原则上都是能够有机器或人所完成的。整个算法好象是一个解决问题的“工作序列”,其中的每一步都是我们力所能及的一个动作,这是算法的(D) A、正确性 B、有穷性 C、确定性 D、可行性 三、简单题 1、什么是数据结构?什么是算法?两者有什么关系? 什么是数据结构?数据结构是按某种逻辑关系组织起来的一批数据(或称带结构的数据元素的集合)应用计算机语言并按一定的存储表示方式把它们存储在计算机的存储器中,并在其上定义了一个运算的集合。 什么是算法?广义地说,为解决一个问题而采取的方法和步骤,就称为“算法” 两者有什么关系?算法与数据结构关系密切。选择的数据结构是否恰当直接影响算法的效率;而数据结构的优劣由算法的执行来体现。 2、什么是复杂度和空间复杂度? 时间复杂度是指执行算法所需要的计算工作量;而 空间复杂度是指执行这个算法所需要的内存空间。 3、数据的逻辑结构分几种?存储结构又有哪几种? 数据的逻辑结构:结构定义中的“关系”,描述的是数据元素之间的逻辑关系;包括线性结构(线性表、栈、队、串、数组)和非线性结构(图形结构、树形结构); 数据的存储结构(物理结构):数据结构在计算机中的表示(又称映像),包括数据元素的表示和关系德表示。有顺序存贮(向量存贮)、链式存贮、索引存贮、散列存贮。 线性表 1、一个线性表第一个元素的存储地址是100,每个元素的长度 为2,则第5 个元素的地址是( B)。 (A)110 (B)108(C)100 (D)120 2、向一个有127 个元素的顺序表中插入一个新元素并保持原来 顺序不变,平均要移动(C)个元素。 (A)64(B)63 (C)63.5(D)7 2、线性表采用链式存储结构时,其地址( D)。 (A) 必须是连续的(B) 部分地址必须是连续的

数据结构与算法 试题及答案

数据结构与算法试题及答案 数据结构与算法试题及答案 在计算机科学领域,数据结构与算法是非常重要的基础知识。数据 结构是一种组织和存储数据的方式,而算法则是解决问题的方法和步骤。掌握好数据结构与算法,有助于提高程序的运行效率和解决实际 问题。 下面是一些关于数据结构与算法的试题及其答案,希望能够帮助大 家更好地理解和应用这方面的知识。 试题一:什么是数据结构?请举例说明。 答案一:数据结构是一种组织和存储数据的方式。它可以使数据的 操作更加高效。常见的数据结构有数组、链表、栈、队列、树和图等。举个例子,数组是一种线性数据结构,可以存储一组相同类型的元素。 试题二:什么是算法?请举例说明。 答案二:算法是一种解决问题的方法和步骤。它是一个精确的描述,用于解决特定问题。常见的算法有排序算法、查找算法、递归算法等。例如,冒泡排序算法是一种比较简单的排序算法,通过不断交换相邻 元素的位置来达到排序的目的。 试题三:什么是时间复杂度和空间复杂度? 答案三:时间复杂度和空间复杂度是衡量算法性能的两个指标。时 间复杂度是指算法执行所需要的时间,通常用大O符号表示。空间复

杂度是指算法执行所需要的额外空间,通常也用大O符号表示。它们 都是描述算法随着输入规模增大而变化的趋势。 试题四:介绍一下常见的数据结构和相应的操作。 答案四:常见的数据结构有数组、链表、栈、队列、树和图等。 - 数组是一种线性数据结构,可以随机访问元素,并且在插入和删 除元素时需要移动其他元素。 - 链表是一种动态数据结构,不需要固定的内存空间,但只能通过 指针进行元素的访问。 - 栈是一种后进先出(LIFO)的数据结构,只能在栈顶进行插入和 删除元素的操作。 - 队列是一种先进先出(FIFO)的数据结构,只能在队尾插入元素,在队头删除元素。 - 树是一种非线性数据结构,由节点和指向子节点的边组成。常见 的树有二叉树、二叉搜索树和AVL树等。 - 图是一种复杂的数据结构,由节点和边组成,可以表示各种关系。 试题五:介绍一下常见的排序算法及其时间复杂度。 答案五:常见的排序算法有冒泡排序、选择排序、插入排序、快速 排序和归并排序等。它们的时间复杂度如下: - 冒泡排序的时间复杂度为O(n^2)。

《数据结构》全真模拟试题与解答

全真模拟试题 、单项选择题(在每个小题的 4个备选答案中,选出正确的答案,并将其号码填在题后 的括号内。每小题 2分,共24分) 1•一个具有n 个顶点的无向完全图的边数为( ) ① n(n+1)/2 ② n(n-1)/2 ③ n( n-1) ④ n(n +1) 2•在索引顺序表中查找一个元素,可用的且最快的方法是( ) ① 用顺序查找法确定元素所在块,再用顺序查找法在相应块中查找 ② 用顺序查找法确定元素所在块,再用二分查找法在相应块中查找 ③ 用二分查找法确定元素所在块,再用顺序查找法在相应块中查找 ④ 用二分查找法确定元素所在块,再用二分查找法在相应块中查找 3 .若某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除最后一个 元素,则采用( )存储方式最节省运算时间。 ①单链表 ③带头结点的双循环链表 4•串是( ) 5•堆排序在最坏情况下,其时间复杂性为( ) ① 0(nlog 2n) ② 0(n 2) ③ O(log 2n 2) ④ O(log 2n) 6•快速排序的记录移动次数( )比较次数,其总执行时间为 0(nlog2n)。 ①大于 ②大于等于 ③小于等于 ④小于 7. —棵二叉树有n 个结点,要按某顺序对该二叉树中的结点编号, (号码为1-n ),编 号须具有如下性质:二叉树中任一结点 V ,其编号等于其左子树中结点的最大编号加 1。 而其右子树中结点的最小编号等于 V 的编号加1。试冋应按()遍历顺序编号。 9•对有n 个记录的有序表采用二分查找,其平均查找长度的量级为( ) ① O(log 2n) ② O(nlog 2n) ③O(n) ④ O(n 2) 10 •对有n 个记录的表按记录键值有序的顺序建立二叉树,在这种情况下,其平均查 找长度的量 级为( ) ① O(n) ② O(nlog 2n) ③ O(1) ④(log 2n) 11 .栈操作的原则是( ) ①先进先出②后进先出 ③栈顶插入④栈顶删除 12 .设矩阵A 是一对称矩阵(a ij =a ji ,1<=i,j<=8),若每个矩阵元素占 3个单元,将其上 三角部分(包括对角线)按行序为主序存放在数组 B 中,B 的首地址为1000,则矩阵元素 a 67的地址为() ① 1031 ② 1093 ③ 1096 ④ 1032 二、判断题(判断下列各题是否正确,正确在括号内打“V” ,错的打“x”。每小题1 分, 共10分) ②双链表 ④容量足够大的顺序表 ①一些符号构成的序列 ③一个以上的字符构成的序列 ②有限个字母构成的序列 ④有限个字符构成的序列 ①前根 ②中根 8.3个结点可构成( ①2 ②3 ③4 ③后根 ④层次 )个不同形态的二叉树。 ④5

《数据结构》模拟试题与参考答案2(四套题)

《数据结构》模拟试题A 一、单项选择题(每题 3 分,共24分) 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. 数据结构是一门研究非数值计算的程序设计问题中计算机的以及它们之间的和运算等的学科。 2. 数据结构被形式地定义为(D, R),其中D是的有限集合,R是D上的有限集合。 3. 数据结构包括数据的、数据的和数据的这三个方面的内容。 4. 数据结构按逻辑结构可分为两大类,它们分别是和。 5. 线性结构中元素之间存在关系,树形结构中元素之间存在关系,图形结构中元素之间存在关系。 6.在线性结构中,第一个结点前驱结点,其余每个结点有且只有 1个前驱结点;最后一个结点后续结点,其余每个结点有且只有1个后续结点。 7. 在树形结构中,树根结点没有结点,其余每个结点有且只有个前驱结点;叶子结点 没有结点,其余每个结点的后续结点数可以。 8. 在图形结构中,每个结点的前驱结点数和后续结点数可以。 9.数据的存储结构可用四种基本的存储方法表示,它们分别是、、和。 10. 数据的运算最常用的有5种,它们分别是、、、、。 11. 一个算法的效率可分为效率和效率。 二、单项选择题 ()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. 计算机算法必须具备输入、输出和等5个特性。 A) 可行性、可移植性和可扩充性 B) 可行性、确定性和有穷性 C) 确定性、有穷性和稳定性 D) 易读性、稳定性和安全性 三、阅读下列C程序段,写出相应的执行结果 1.printf(“Input x”); scanf(“%d”,&x); if (x<=30) if(x>20) y=x;

算法与数据结构试题及答案

数据结构模拟试题... 一、简答题(15分,每小题3分) 1.简要说明算法与程序的区别。 2.在哈希表中,发生冲突的可能性与哪些因素有关?为什么? 3.说明在图的遍历中,设置访问标志数组的作用。 4.说明以下三个概念的关系:头指针,头结点,首元素结点。 5.在一般的顺序队列中,什么是假溢出?怎样解决假溢出问题? 二、判断题(10分,每小题1分) 正确在括号内打√,错误打× ( )(1)广义表((( a ), b), c ) 的表头是(( a ), b),表尾是( c )。 ( )(2)在哈夫曼树中,权值最小的结点离根结点最近。 ( )(3)基数排序是高位优先排序法。 ( )(4)在平衡二叉树中,任意结点左右子树的高度差(绝对值)不超过1。 ( )(5)在单链表中,给定任一结点的地址p,则可用下述语句将新结点s插入结点p的后面:p->ne*t = s; s->ne*t = p->ne*t; ( )(6)抽象数据类型(ADT)包括定义和实现两方面,其中定义是独立于实现的,定义仅给出一个ADT的逻辑特性,不必考虑如何在计算机中实现。 ( )(7)数组元素的下标值越大,存取时间越长。 ( )(8)用邻接矩阵法存储一个图时,在不考虑压缩存储的情况下,所占用的存储空间大小只与图中结点个数有关,而与图的边数无关。 ( )(9)拓扑排序是按AOE网中每个结点事件的最早发生时间对结点进行排序。 ( )(10)长度为1的串等价于一个字符型常量。 三、单项选择题(10分, 每小题1分) 1.排序时扫描待排序记录序列,顺次比较相邻的两个元素的大小,逆序时就交换位置。这是哪种排序方法的基本思想? A、堆排序 B、直接插入排序 C、快速排序 D、冒泡排序 2.已知一个有向图的邻接矩阵表示,要删除所有从第i个结点发出的边,应该: A)将邻接矩阵的第i行删除B)将邻接矩阵的第i行元素全部置为0 C)将邻接矩阵的第i列删除D)将邻接矩阵的第i列元素全部置为0 3.有一个含头结点的双向循环链表,头指针为head, 则其为空的条件是: A.head->priro==NULL B. head->ne*t==NULL C. head->ne*t==head D. head->ne*t-> priro==NULL 4. 在顺序表( 3, 6, 8, 10, 12, 15, 16, 18, 21, 25, 30 ) 中,用折半法查找关键码值11,所需的关键码比较次数为: A) 2 B) 3 C) 4 D) 5 5. 以下哪一个不是队列的基本运算? A)从队尾插入一个新元素B)从队列中删除第i个元素 C)判断一个队列是否为空D)读取队头元素的值 6. 在长度为n的顺序表的第i个位置上插入一个元素(1≤i ≤n+1),元素的移动次数为: A) n –i + 1 B) n –i C) i D) i –1

数据结构-《数据结构与算法》试卷及答案【考试试卷答案】

《数据结构与算法》试卷A 适用专业: 考试日期: 闭卷 所需时间:120分钟 总分:100分 一、 选择题(每题1分, 共20题,总共20分)。 1.算法分析的目的是( ) A .辨别数据结构的合理性 B .评价算法的效率 C .研究算法中输入与输出的关系 D .鉴别算法的可读性 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.由权值分别为3,8,6,2的叶子生成一棵哈夫曼树,它的带权路径长度为( )。 A . 11 B.35 C. 19 D. 53 5.如下图所示的4棵二叉树中,( )不是完全二叉树。 6.下面关于线性表的叙述中,错误的是哪一个?( ) A .线性表采用顺序存储,必须占用一片连续的存储单元。 B .线性表采用顺序存储,便于进行插入和删除操作。 C .线性表采用链接存储,不必占用一片连续的存储单元。 D .线性表采用链接存储,便于插入和删除操作。 7.某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用( )存储方式最节省运算时间。 A .单链表 B .仅有头指针的单循环链表 C .双链表 D .仅有尾指针的单循环链表 8. 若长度为n 的线性表采用顺序存储结构,在其第i 个位置插入一个新元素的算法的时间复杂度为( )(1<=i<=n+1)。 A. O(0) B. O(1) C. O(n) D. O(n 2 ) 9. 若已知一个栈的入栈序列是1,2,3,…,n ,其输出序列为p 1,p 2,p 3,…,p N ,若p N 是n ,则p i 是( )。 A. i B. n-i C. n-i+1 D. 不确定 10. 若栈采用顺序存储方式存储,现两栈共享空间V[1..m],top[i]代表第i 个栈( i =1,2)栈顶,栈1的底在v[1],栈2的底在V[m],则栈满的条件是( )。 A. |top[2]-top[1]|=0 B. top[1]+1=top[2] C. top[1]+top[2]=m D. top[1]=top[2] 11.下面关于串的的叙述中,哪一个是不正确的?( ) A .串是字符的有限序列 B .空串是由空格构成的串 C .模式匹配是串的一种重要运算 D .串既可以采用顺序存储,也可以采用链式存储 12. 设有数组A[i,j],数组的每个元素长度为3字节,i 的值为1 到8 ,j 的值为1 到10,数组从内存首地址BA 开始顺序存放,当用以列为主存放时,元素A[5,8]的存储首地址为( )。 A. BA+141 B. BA+180 C. BA+222 D. BA+225 13. 将一个A[1..100,1..100]的三对角矩阵,按行优先存入一维数组B[1‥298]中,A 中元素A 6665(即该元素下标i=66,j=65),在B 数组中的位置K 为( )。 供选择的答案:A. 198 B. 195 C. 197 D.200 14. 设树T 的度为4,其中度为1,2,3和4的结点个数分别为4,2,1,1 则T 中的叶子数为( ) A .5 B .6 C .7 D .8 15. 在下述结论中,正确的是( ) ①只有一个结点的二叉树的度为0; ②二叉树的度为2; ③二叉树的左右子 院系:—————— 专业班级:——————— 姓名:——————— 学号:————— —

数据结构试题集(8套卷子+答案)

数据结构试题集(8套卷子+答案) 《数据结构》试卷一 一、填空题:(共20分) 1、当线性表的元素总数基本稳定,且很少进行插入和删除操作,但要求以最快的速度存取线性表中的元素时,应采用存储结构。 2、队列是限制插入只能在表的一端,而删除在表的另一端进行的线性表,其特点是。 3、在一棵二叉树中,度为0的结点个数为n0,度为2的个数为n2,则n0= 。 4、二叉树的前序遍历序列等同于该二叉树所对应森林的遍历序列 5、对一棵二叉排序树,若以遍历该树,将得到一个以关键字递增顺序排列的有序序列。 6、三个结点a,b,c组成二叉树,共有种不同的结构。 7、在AVL树中,由于在A结点的右孩子的右子树上插入结点,使A结点的平衡因子由-1变为-2,使其失去平衡,应采用型平衡旋转。 8、图的遍历有两种,它们是。 9、堆排序的时间复杂度为。 10、在含有N个结点的二叉链表中有空链域,通常用这些空链域存储线索,从而得另一种链式存储结构----线索链表。 二、单项选择题(共20分) 1、若进栈序列为1,2,3,4,假定进栈和出栈可以穿插进行,则可能的出栈序列是() (A)2,4,1,3(B)3,1,4,2 (C)3,4,1,2(D)1,2,3,4 2、有一棵非空的二叉树,(第0层为根结点),其第i层上最多有多少个结点?()(A)2i(B)21-i(C)21+i(D) i 3、设电文中出现的字母为A,B,C,D,E,每个字母在电文中出现的次数分别为9,27,3,5,11,按huffman编码,则字母A编码为()

(A)10(B)110(C)1110(D)1111 4、下面关于数据结构的叙述中,正确的叙述是() (A)顺序存储方式的优点是存储密度大,且插、删除运算效率高(B)链表中每个结点都恰好包含一个指针 (C)包含n个结点的二叉排序树的最大检索长度为log n 2 (D)将一棵树转为二叉树后,根结点无右子树 5、程序段:y:=0 while n>=(y+1)*(y+1) do y:=y+1 enddo 的时间复杂度为() (A)O(n) (B)O(n2) (C)O(n2/1) (D)O(1) 6、排序方法中,关键码比较的次数与记录的初始排列无关的是( ) (A) shell排序 (B) 归并排序 (C) 直接插入排序 (D) 直接选择排序 7、数组q[0..n-1]作为一个环行队列,f 为当前队头元素的前一位置,r为队尾元素的位置,假定队列中元素的个数总小于n,则队列中元素个数为( ) (A) r-f (B) n+f-r (C) n+r-f (D) (n+r-f) mod n 8、为了有效的利用散列查找技术,需要解决的问题是:( ) Ⅰ:找一个好的散列函数 Ⅱ:设计有效的解决冲突的方法 Ⅲ:用整数表示关键码值 (A) Ⅰ和Ⅲ (B) Ⅰ和Ⅱ (C) Ⅱ和Ⅲ (D)Ⅰ,Ⅱ和Ⅲ 9、引入线索二叉树的目的是() (A) 加快查找结点的前驱或后继的速度 (B) 为了能在二叉树中方便的进行插入与删除 (C) :为了能方便的找到双亲 (D) 使二叉树的遍历结果唯一

数据结构模拟试题及答案

数据结构模拟试题一 一、判断题(每小题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.便于按行处理矩阵元素

数据结构试卷带答案

数据结构试卷一 一、选择题20分 1.组成数据的基本单位是; 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.二叉树中第ii≥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的度数数为 A 3 B 4 C 5 D 1 9.根据二叉树的定义可知二叉树共有 B种不同的形态; A 4 B 5 C 6 D 7 10.设有以下四种排序方法,则 B 的空间复杂度最大; A 冒泡排序 B 快速排序 C 堆排序 D 希尔排序 二、填空题30分 1.设顺序循环队列Q0: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 indexchar s , char t { i=j=0; whilei

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