当前位置:文档之家› 数据结构 试题及答案3套

数据结构 试题及答案3套

数据结构 试题及答案3套
数据结构 试题及答案3套

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

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

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,则下列序列中不可能是栈的输出序列的是( C )

A. 2 3 1

B. 3 2 1

C. 3 1 2

D. 1 2 3

5. AOV网是一种()。

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

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

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

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

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

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

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

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

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

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

A. O(n)

B. O(1)

C. O(log2n)

D. O(n2)

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

1. 数据结构是指数据及其相互之间的______________。当结点之间存在M对N(M:N)的联系时,称这种结构为_____________________。

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

3. 当用长度为N的数组顺序存储一个栈时,假定用top==N表示栈空,则表示栈满的条件是___top==0___(要超出才为满)_______________。

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

5. 设W为一个二维数组,其每个数据元素占用4个字节,行下标i从0到7 ,列下标j从0到3 ,则二维数组W的数据元素共占用_______个字节。W 中第6 行的元素和第4 列的元素共占用_________个字节。若按行顺序存放二维数组W,其起始地址为100,则二维数组元素W[6,3]的起始地址为_________

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

7. 二叉树是指度为2的____________________树。一棵结点数为N的二叉树,其所有结点的度的总和是_____________。

8. 对一棵二叉搜索树进行中序遍历时,得到的结点序列是一个______________。对一棵由算术表达式组成的二叉语法树进行后序遍历得到的结点序列是该算术表达式的__________________。

9. 对于一棵具有n个结点的二叉树,用二叉链表存储时,其指针总数为_______个,其中___________个用于指向孩子,_____________个指针是空闲的。

10. 若对一棵完全二叉树从0开始进行结点的编号,并按此编号把它顺序存储到一维数组A中,即编号为0的结点存储到A[0]中。其余类推,则A[ i ]元素的左孩子元素为________,右孩子元素为_______________,双亲元素为____________。

11. 在线性表的散列存储中,处理冲突的常用方法有________________________和_____________________________两种。

12. 当待排序的记录数较大,排序码较随机且对稳定性不作要求时,宜采用________排序;当待排序的记录数较大,存储空间允许且要求排序是稳定时,宜采用______排序。

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

1. 已知一个6?5稀疏矩阵如下所示, (1) 试写出它的三元组线性表;

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

2. 设有一个输入数据的

序列是 { 46, 25, 78, 62, 12, 80 }, 试画出从空树起,逐个输入各个数据而生成的二叉搜索树。

3. 对于图6所示的有向图若存储它采用邻接表,并且每个顶点邻接表中的边结点都是按照终点序号从小到大的次序链接的,试写出:

(1) 从顶点①出发进行深度优先搜索所得到的深度优先生成树; (2) 从顶点②出发进行广度优先搜索所得到的广度优先生成树; 4. 已知一个图的顶点集V 和边集E 分别为: V={1,2,3,4,5,6,7};

E={<2,1>,<3,2>,<3,6>,<4,3>,<4,5>,<4,6>,<5,1>,<5,7>,<6,1>,<6,2>,<6,5>};

若存储它采用邻接表,并且每个顶点邻接表中的边结点都是按照终点序号从小到大的次序链接的,按主教材中介绍的拓朴排序算法进行排序,试给出得到的拓朴排序的序列。

四、 阅读算法(每题7分,共14分) 1. int Prime(int n)

{ int i=1;

int x=(int) sqrt(n);

while (++i<=x) if (n%i==0) break; if (i>x) return 1; else return 0; }

(1) 指出该算法的功能; (2) 该算法的时间复杂度是多少?

五、 算法填空(共8

分)

如下为二分查找的非递归算法,试将其填写完整。 Int Binsch(ElemType A[ ],int n,KeyType K) {

int low=0; int high=n-1; while (low<=high) {

int mid=_______________________________;

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

else if (K<[mid].key)

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

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

???

??

?

??????????????--00

7

000052000

000010000001

0000

图6

2. 写出下述算法的功能: void AJ(adjlist GL, int i, int n) { Queue Q; InitQueue(Q); cout<

QInsert(Q,i);

while(!QueueEmpty(Q)) { int k=QDelete(Q); edgenode* p=GL[k]; while(p!=NULL)

{

int j=p->adjvex;

if(!visited[j])

{

cout<

visited[j]=true;

QInsert(Q,j); }

p=p->next;

}

}

}

}

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

六、 编写算法(共8分)

HL 是单链表的头指针,试写出删除头结点的算法。 ElemType DeleFront(LNode * & HL)

参考答案

一、 一、 单选题(每题2分,共20分) 1.B 2.A 3.B 4.C 5.D 6.B 7.D 8.A 9.D 10.C 二、 二、 填空题(每空1分,共26分) 1. 1. 联系 图(或图结构) 2. 2. 尾 首 3. 3. top==0 4. 4. O (1) O (n ) 5. 5. 128 44 108 6. 6. 3 3

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

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

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

11. 11. 开放定址法 链接法

12. 12. 快速 归并 三、 三、 运算题(每题6分,共24分)

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

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

2. 2. 如图8所示。

3.

3. DFS :①②③④⑤ BFS :②③④⑤①

4. 4. 拓朴排序为: 4 3 6 5 7 2 1 四、 四、 阅读算法(每题7分,共14分) 1. 1. (1) 判断n 是否是素数(或质数)

(2)O (n ) 2. 2. 功能为:从初始点v i 出发广度优先搜索由邻接表GL 所表示的图。 五、 五、 算法填空(8 分)

(low+high)/2 high=mid-1 low=mid+1 六、 六、 编写算法(8分) ElemType DeleFront(LNode * & HL) {

if (HL==NULL){ cerr<<"空表"<

exit(1); }

LNode* p=HL; HL=HL->next;

ElemType temp=p->data; delete p; return temp; }

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

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

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

B.都是先进后出

C.都是先进先出

D.没有共同点 2. 用链接方式存储的队列,在进行插入运算时( ).

A. 仅修改头指针

B. 头、尾指针都要修改

C. 仅修改尾指针

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

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

A. 队列

B. 栈

C. 线性表

D. 二叉树

4. 设有一个二维数组A [m ][n ],假设A [0][0]存放位置在644(10),A [2][2]存放位置在676(10),每个元素占一个空间,问A [3][3](10)存放在什么位置?脚注(10)表示用10进制表示。

6 5

5 1 5 1 3 2 -1

4 5 -2 5 1 5 6

3

7

图7

图8

A .688

B .678

C .692

D .696

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

A.有序数据元素

B.无序数据元素

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

D.元素之间无联系的数据 6. 二叉树的第k 层的结点数最多为( ).

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

7. 若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A [3]的比较序列的下标依次为( )

A. 1,2,3

B. 9,5,2,3

C. 9,5,3

D. 9,4,2,3

8. 对n 个记录的文件进行快速排序,所需要的辅助存储空间大致为 A. O (1) B. O (n ) C. O (1og 2n ) D. O (n2)

9. 对于线性表(7,34,55,25,64,46,20,10)进行散列存储时,若选用H (K )=K %9作为散列函数,则散列地址为1的元素有( )个, A .1 B .2 C .3 D .4

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

A.5

B.6

C.7

D.8

一、

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

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

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

3. 假定一棵树的广义表表示为A (C ,D (E ,F ,G ),H (I ,J )),则树中所含的结点数为__________个,树的深度为___________,树的度为_________。

4. 后缀算式9 2 3 +- 10 2 / -的值为__________。中缀算式(3+4X )-2Y/3对应的后缀算式为_______________________________。

5. 若用链表存储一棵二叉树时,每个结点除数据域外,还有指向左孩子和右孩子的两个指针。在这种存储结构中,n 个结点的二叉树共有________个指针域,其中有________个指针域是存放了地址,有________________个指针是空指针。

6. 对于一个具有n 个顶点和e 条边的有向图和无向图,在其对应的邻接表中,所含边结点分别有_______个和________个。

7. AOV 网是一种___________________的图。

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

9. 假定一个线性表为(12,23,74,55,63,40),若按Key % 4条件进行划分,使得同一余数的元素成为一个子表,则得到的四个子表分别为____________________________、___________________、_______________________和__________________________。 10. 向一棵B_树插入元素的过程中,若最终引起树根结点的分裂,则新树比原树的高度___________。

11. 在堆排序的过程中,对任一分支结点进行筛运算的时间复杂度为________,整个堆排序过程的时间复杂度为________。 12. 在快速排序、堆排序、归并排序中,_________排序是稳定的。 三、 运算题(每题 6 分,共24分) 1.

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

A 0 1 2 3 4 5 6 7

data 60 50 78 90 34 40 next

3

5

7

2

4

1

2. 2. 请画出图10的邻接矩阵和邻接表。

3. 3. 已知一个图的顶点集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};

用克鲁斯卡尔算法得到最小生成树,试写出在最小生成树中依次得到的各条边。 4.

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

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

1. LinkList mynote(LinkList L)

{//L 是不带头结点的单链表的头指针

if(L&&L->next){

图10

2. void ABC(BTNode * BT)

{

if BT {

ABC (BT->left); ABC (BT->right);

q=L ;L=L ->next ;p=L ; S1: while(p ->next) p=p ->next ; S2: p ->next=q ;q ->next=NULL ; }

return L ; } 请回答下列问题: (1)说明语句S1的功能; (2)说明语句组S2的功能;

(3)设链表表示的线性表为(a 1,a 2, …,a n ),写出算法执行后的返回值所表示的线性表 五、 算法填空(共8分) 二叉搜索树的查找——递归算法:

bool Find(BTreeNode* BST,ElemType& item)

{

if (BST==NULL) return false; //查找失败 else {

if (item==BST->data){

item=BST->data;//查找成功 return ___________;} else if(itemdata)

return Find(______________,item); else return Find(_______________,item); }//if }

六、 编写算法(共8分)

统计出单链表HL 中结点的值等于给定值X 的结点数。 int CountX(LNode* HL,ElemType x)

图11

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

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

4. 见图12

图12

4 4 4 4 4 2 2 2 5

5

5

2

2

8

8

4 3

5 2

8 3 4

参考答案

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

1.A

2.D

3.D

4.C

5.C

6.D

7.D

8.C

9.D 10.A 二、 填空题(每空1分,共26分)

1. 正确性 易读性 强壮性 高效率

2. O(n)

3. 9 3 3

4. -1 3 4 X * + 2 Y * 3 / -

5. 2n n-1 n+1

6. e 2e

7. 有向无回路

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

9. (12,40) ( ) (74) (23,55,63) 10. 增加1

11. O(log 2n) O(nlog 2n) 12. 归并

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

1. 线性表为:(78,50,40,60,34,90)

2. 邻接矩阵:???????????????

?01

1

1

10101110111010101110

邻接表如图11所示:

四、阅读算法(每题7分,共14分) 1. (1)查询链表的尾结点

(2)将第一个结点链接到链表的尾部,作为新的尾结点 (3)返回的线性表为(a 2,a 3,…,a n ,a 1) 2. 递归地后序遍历链式存储的二叉树。

五、 算法填空(每空2分,共8 分) true BST->left BST->right 六、 编写算法(8分) int CountX(LNode* HL,ElemType x)

{ int i=0; LNode* p=HL;//i 为计数器 while(p!=NULL)

{ if (P->data==x) i++; p=p->next;

}//while, 出循环时i 中的值即为x 结点个数 return i; }//CountX

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

1、在一个长度为n 的顺序线性表中顺序查找值为x 的元素时,查找成功时的平均查找长度(即x 与元素的平均比较次数,假定查找每个元素的概率都相等)为 ( )。

A n

B n/2

C (n+1)/2

D (n-1)/2

2、在一个单链表中,若q 所指结点是p 所指结点的前驱结点,若在q 与p 之间插入一个s 所指的结点,则执行( )。 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;

3、 栈的插入和删除操作在( )进行。

A 栈顶

B 栈底

C 任意位置

D 指定位置

4、 由权值分别为11,8,6,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为( )

A 24

B 71

C 48

D 53 二、 填空题(每空1分,共32分)

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

2、一种抽象数据类型包括______________和_____________两个部分。

3、在下面的数组a 中链接存储着一个线性表,表头指针为a[o].next ,则该线性表为_________________________________________________。

a 0 1 2 3 4 5 6 7 8 data next

4、在以HL 为表头指针的带表头附加结点的单链表和循环单链表中,判断链表为空的条件分别为________________和____________________。

5、用具有n 个元素的一维数组存储一个循环队列,则其队首指针总是指向队首元素的___________,该循环队列的最大长度为__________。

6、当堆栈采用顺序存储结构时,栈顶元素的值可用———————表示;当堆栈采用链接存储结构时,栈顶元素的值可用_______________表示。

7、一棵高度为5的二叉树中最少含有_________个结点,最多含有________个结点; 一棵高度为5的理想平衡树中,最少含有_________个结点,最多含有_________个结点。

8、在图的邻接表中,每个结点被称为____________,通常它包含三个域:一是_____________;二是___________;三是_____________。 9、在一个索引文件的索引表中,每个索引项包含对应记录的_________和___________两项数据。

10、假定一棵树的广义表表示为A (B (C ,D (E ,F ,G ),H (I ,J ))),则树中所含的结点数为_________个,树的深度为_________,树的度为________, 结点H 的双亲结点为________,孩子结点为_______________ 。

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

12、在对m 阶的B_树插入元素的过程中,每向一个结点插入一个索引项(叶子结点中的索引项为关键字和空指针)后,若该结点的索引项数等于______个,则必须把它分裂为_______个结点。 三、 运算题(每小题6分,共24分)

1、已知一组记录的排序码为(46,79,56,38,40,80, 95,24),写出对其进行快速排序的每一次划分结果。

2、一个线性表为B=(12,23,45,57,20,03,78,31,15,36),设散列表为HT[0..12],散列函数为H (key )= key % 13并用线性探查法解决冲突,请画出

60 56 42 38 74 25 4

3

7

6

2

1

散列表,并计算等概率情况下查找成功的平均查找长度。

3、已知一棵二叉树的前序遍历的结果序列是ABECKFGHIJ ,中序遍历的结果是EBCDAFHIGJ ,试写出这棵二叉树的后序遍历结果。

4、已知一个图的顶点集V 各边集G 如下: V = {0,1,2,3,4,5,6,7,8,9};

E = {(0,1),(0,4),(1,2),(1,7),(2,8),(3,4),(3 ,8),(5,6),(5,8),(5,9),(6,7),(7,8),(8,9)}

当它用邻接矩阵表示和邻接表表示时,分别写出从顶点V 0出发按深度优先搜索遍历得到的顶点序列和按广度优先搜索遍历等到的顶点序列。 假定每个顶点邻接表中的结点是按顶点序号从大到小的次序链接的。

四、 阅读算法,回答问题(每小题8分,共16分)

1、假定从键盘上输入一批整数,依次为:78 63 45 30 91 34 –1,请写出输出结果。

# include < iostream.h> # include < stdlib.h >

consst int stackmaxsize = 30; typedef int elemtype; struct stack {

elemtype stack [stackmaxsize];

int top; };

# include “stack.h ”

V oid main ( )

{

2、阅读以下二叉树操作算法,指出该算法的功能。 Template void BinTree ::

unknown (BinTreeNode*t) {

BinTreeNode< Type> *p =t, *temp; if (p!=NULL) { temp = p →leftchild; p →leftchild = p →rightchild; p →rightchild = temp; unknown(p →leftchild); undnown(p →rightchild); } }

该算法的功能是:________________________________

五、算法填空,在画有横线的地方填写合适的内容(10分)

对顺序存储的有序表进行二分查找的递归算法 。 int Binsch( ElemType A[ ],int low ,int high,KeyType K ) {

if (low <= high) {

深度优先序列

广度优先序列

邻接矩阵表示时 邻接表表示时

stack a; initstack(a); int x; cin >>x; while (x! = -1) { push (a, x ); cin >>x; }

while (!stackempty (a)) cout <

}

该算法的输出结果为:

_____________________________________________

_____________.

int mid = 1

if ( K= = A[ mid ].key ) return mid; else if ( K < A[mid].key) return 2 else return 3 } else return 4

六、编写算法(10分)

编写算法,将一个结点类型为Lnode的单链表按逆序链接,即若原单链表中存储元素的次序为a1,......a n-1,a n,则逆序链接后变为, a n,a n-1, (1)

V oid contrary (Lnode * & HL)

数据结构试题(答案)

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

题号 1 2 3 4

答案 C D A B

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

1:集合、线性、树、图;

2:数据描述、操作声名;

3:(38,56,25,60,42,74);

4:HL→next =NULL;HL=HL→next;

5:前一个位置;n-1;

6:S.stack [S.top]; HS→data;

7:5 31

8:边结点、邻接点域、权域、链域;

9:索引值域、开始位置域;

10:10、3、3、B、I和J;

11:O(log2n)、O(nlog2n);

12:m 、m - 1

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

1、

划分次序划分结果

第一次[38 24 40] 46 [56 80 95 79]

第二次24 [38 40] 46 [56 80 95 79]

第三次24 38 40 46 [56 80 95 79]

第四次24 38 40 46 56 [80 95 79]

第五次24 38 40 46 56 79 [80 95]

第六次24 38 40 46 56 79 80 95

2、

0 1 2 3 4 5 6 7 8 9 10 11 12

78 15 03 57 45 20 31 23 36 12

查找成功的平均查找长度:ASL SUCC=14/10= 1.4

3、此二叉树的后序遍历结果是:EDCBIHJGFA

4、

图深度优先序列广度优先序列

邻接矩阵表示时0,1,2,8,3,4,5,6,7,9 0,1,4,2,7,3,8,6,5,9

邻接表表示时0,4,3,8,9,5,6,7,1,2 0,4,1,3,7,2,8,6,9,5

四、阅读算法,回答问题(每小题8分,共16分)

1、该算法的输入结果是:34 91 30 45 63 78

2、该算法的功能是:交换二叉树的左右子树的递归算法。

五、算法填空,在画有横线的地方填写合适的内容(10分)

1、1是:(low + high)/2;

2是:Binsch(A,low,mid–1,K);

3是:Binsch(A,mid+1,high,K);

4是:-1;

六、编写算法(10分)

根据编程情况,酌情给分。

{

Lnode *P=HL;

HL=NULL;

While (p!=null)

{

Lnode*q=p;

P=p→next;

q→next=HL;

HL=q;

}

}

第一部分 选择题(30分)

一、项选择题(本大题共15小题,每小题2分共30分)在每小题列出的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的括号内。 1.算法指的是( )

A .计算机程序

B .解决问题的计算方法

C .排序算法

D .解决问题的有限运算序列 2.线性表采用链式存储时,结点的存储地址( )

A .必须是不连续的

B .连续与否均可

C .必须是连续的

D .和头结点的存储地址相连续 3.将长度为n 的单链表链接在长度为m 的单链表之后的算法的时间复杂度为( ) A .O (1) B .O (n ) C .O (m ) D .O (m+n ) 4.由两个栈共享一个向量空间的好处是:( )

A .减少存取时间,降低下溢发生的机率

B .节省存储空间,降低上溢发生的机率

C .减少存取时间,降低上溢发生的机率

D .节省存储空间,降低下溢发生的机率

5.设数组data[m]作为循环队列SQ 的存储空间,front 为队头指针,rear 为队尾指针,则执行出队操作后其头指针front 值为( ) A .front=front+1 B .front=(front+1)%(m-1) C .front=(front-1)%m D .front=(front+1)%m 6.如下陈述中正确的是( )

A .串是一种特殊的线性表

B .串的长度必须大于零

C .串中元素只能是字母

D .空串就是空白串

7.若目标串的长度为n ,模式串的长度为[n/3],则执行模式匹配算法时,在最坏情况下的时间复杂度是( )

A .O (n

3) B .O (n ) C .O (n 2) D .O (n 3)

8.一个非空广义表的表头( )

A .不可能是子表

B .只能是子表

C .只能是原子

D .可以是子表或原子 9.假设以带行表的三元组表表示稀疏矩阵,则和下列行表 对应的稀疏矩阵是( ) A.08067000000050400000--??????????

B.08067000504000000300--??????????????

??

C.08060000020050400000--?????????????

? D .08060000700050400300--???

????????????? 10.在一棵度为3的树中,度为3的结点个数为2,度为2 的结点个数为1,则度为0的结点个数为( ) A .4 B .5 C .6 D .7

11.在含n 个顶点和e 条边的无向图的邻接矩阵中,零元素的个数为( ) A .e B .2e C .n 2-e D .n 2-2e

12.假设一个有n 个顶点和e 条弧的有向图用邻接表表示,则删除与某个顶点v i 相关的所有弧的时间复杂度是( ) A .O(n) B .O(e) C .O(n+e) D .O(n*e)

13.用某种排序方法对关键字序列(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 .快速排序 14.适于对动态查找表进行高效率查找的组织结构是( )

A .有序表

B .分块有序表

C .三叉排序树

D .线性链表 15.不定长文件是指( )

A .文件的长度不固定

B .记录的长度不固定

C .字段的长度不固定

D .关键字项的长度不固定

第二部分 非选择题(共70分)

二、填空题(本大题共10小题,每小题2分,若有两个空格,每个空格1分,共20分)不写解答过程,将正确的答案写在每小题的空格内。错填或不填均无分。 16.数据的逻辑结构是从逻辑关系上描述数据,它与数据的 无关,是独立于计算机的。

17.在一个带头结点的单循环链表中,p 指向尾结点的直接前驱,则指向头结点的指针head 可用p 表示为head= 。 18.栈顶的位置是随着 操作而变化的。

19.在串S=“structure ”中,以t 为首字符的子串有 个。

0 2 3 3 5

20.假设一个9阶的上三角矩阵A 按列优先顺序压缩存储在一维数组B 中,其中B[0]存储矩阵中第1个元素a 1,1,则B[31]中存放的元素是 。 21.已知一棵完全二叉树中共有768结点,则该树中共有 个叶子结点。 22.已知一个图的广度优先生成树如右图所示,则与此相应的广度优先遍历序列为 。 23.在单链表上难以实现的排序方法有 和 。

24.在有序表(12,24,36,48,60,72,84)中二分查找关键字72时所需进行的关键字比较次数为 。 25.多重表文件和倒排文件都归属于 文件。 三、解答题(本大题共4小题,每小题5分,共20分) 26.画出下列广义表的共享结构图形表示 P=(((z ),(x,y)),((x,y),x),(z))

27.请画出与下列二叉树对应的森林。

28.已知一个无向图的顶点集为{a, b, c, d, e} ,其邻接矩阵如下所示 0100110010000110110110110?????????

???

?

???

(1)画出该图的图形;

(2)根据邻接矩阵从顶点a 出发进行深度优先遍历和广度优先遍历,写出相应的遍历序列。 29.已知一个散列表如下图所示:

35

20

33

48

59

0 1 2 3 4 5 6 7 8 9 10 11 12

其散列函数为h(key)=key%13, 处理冲突的方法为双重散列法,探查序列为: h i =(h(key)+i *h1(key))%m i =0,1,…,m -1

其中

h1(key)=key%11+1 回答下列问题:

(1)对表中关键字35,20,33和48进行查找时,所需进行的比较次数各为多少? (2)该散列表在等概率查找时查找成功的平均查找长度为多少?

四、算法阅读题(本大题共4小题,每小题5分,共

20分) 30.下列算法的功能是比较两个链串的大小,其返回值为: comstr(s 1,s 2)=

-<=>?

??

?

?101121212当当当s s s s s s

请在空白处填入适当的内容。 int comstr(LinkString s1,LinkString s2) {//s1和s2为两个链串的头指针 while(s1&&s2){

if(s1->datedate)return -1; if(s1->date>s2->date)return1; ① ; ② ; }

if( ③ )return -1; if( ④ )return1; ⑤ ; }

32.假设两个队列共享一个循环向量空间(参见右下图), 其类型Queue2定义如下:

a

b c d e

31.阅读下面的算法

LinkList mynote(LinkList L)

{//L 是不带头结点的单链表的头指针 if(L&&L->next){

q=L ;L=L ->next ;p=L ; S1: while(p ->next) p=p ->next ; S2: p ->next=q ;q ->next=NULL ; }

return L ; } 请回答下列问题: (1)说明语句S1的功能; (2)说明语句组S2的功能;

(3)设链表表示的线性表为(a 1,a 2, …,a n ),写出算法执行后的返回值所表示的线性表。

typedef struct{

DateType data[MaxSize]; int front[2],rear[2]; }Queue2;

对于i=0或1,front[i]和rear[i]分别为第i 个队列的头指针和尾指针。请对以下算法填空,实现第i 个队列的入队操作。 int EnQueue (Queue2*Q,int i,DateType x)

{//若第 i 个队列不满,则元素x 入队列,并返回1;否则返回0 if(i<0||i>1)return 0;

if(Q ->rear[i]==Q ->front[ ① ]return0; Q ->data[ ② ]=x ; Q ->rear[i]=[ ③ ]; return1; }

33.已知二叉树的存储结构为二叉链表,阅读下面算法。 typedef struct node { DateType data ; Struct node * next ; }ListNode ;

typedef ListNode * LinkList ; LinkList Leafhead=NULL ; V oid Inorder (BinTree T) {

LinkList s ; If(T){

Inorder(T ->lchild);

If ((!T ->lchild)&&(!T ->rchild)){

s=(ListNode*)malloc(sizeof(ListNode)); s ->data=T ->data ; s ->next=Leafhead ; Leafhead=s ; }

Inorder(T ->rchild); } }

对于如下所示的二叉树

(1)画出执行上述算法后所建立的结构;

(2)说明该算法的功能。

数据结构试题参考答案

一、 单项选择题(本大题共15小题,每小题2分,共30分)

1.D 2.B 3.C 4.B 5.D6.A 7.C 8,D 9,A 10.C11.D 12.C 13.D 14.C

15.B

二、填空题(本大题共10小题,每小题2分,共20分) 16.存储(或存储结构) 17.p ->next ->next

18.进栈和退栈

19.12 20.a 4,8 21.384

22

Abefcdg

五、算法设计题(本题共10分) 34.阅读下列函数arrange() int arrange(int a[],int 1,int h,int x) {//1和h 分别为数据区的下界和上界 int i,j,t ; i=1;j=h ; while(i

while(i=x)j--; while(i=x)i++; if(i

{ t=a[j];a[j]=a[i];a[i]=t ;} }

if(a[i]

(1)写出该函数的功能;

(2)写一个调用上述函数实现下列功能的算法:对一整

型数组b[n]中的元素进行重新排列,将所有负数均调整到数组的低下标端,将所有正数均调整到数组的高下标端,若有零值,则置于两者之间,并返回数组中零元素的个数。

23.快速排序、堆排序、希尔排序 24.2 25.多关键字

三、解答题(本大题共4小题,每小题5分,共20分) 26.

图 1

图2 27.

28.该图的图形为:

深度优先遍历序列为:abdce 广度优先遍历序列为:abedc

29.(1)对关键字35、20、33和48进行查找的比较次数为3、2、1、1; (2)平均查找长度

ASL =

++++=

3211259

5

四、算法阅读题(本大题共4小题,每小题5分,共20分)

30. ①S1=S1->next ②s2=s2->next

③s2(或s2!=NULL 或s2&&!s1) ④s1(或s1!=NULL 或s1&&!s2) ⑤return 0 31.(1)查询链表的尾结点

(2)将第一个结点链接到链表的尾部,作为新的尾结点 (3)返回的线性表为(a 2,a 3,…,a n ,a 1) 32. ①(i +1)%2(或1-i) ②Q ->rear[i]

③(Q ->rear[i]+)%Maxsize 33.(1)Leafhead

F

H

G

D

(2)中序遍历二叉树,按遍历序列中叶子结点数据域的值构建一个以Leafhead 为头指针的逆序单链表(或按二叉树中叶子结点数据自右至左链接成一个链表)。 五、算法设计题(本题共10分)

34.(1)该函数的功能是:调整整数数组a[]中的元素并返回分界值i ,使所有<x 的元素均落在a[1..i]上,使所有≥x 的元素均落在a[i +1..h]上。 (2)int f(int b[],int n) 或 int f(int b[],int n) { {

int p,q ; int p,q ;

p=arrange(b,0,n -1,0); p=arrange(b,0,n -1,1); q= arrange(b,p+1,n -1,1); q= arrange(b,0,p,0); return q -p ; return p -q ; } }

一、选择题(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 是( )。

(A) 线性结构

(B) 树型结构

(C) 图型结构

(D) 集合

3.数组的逻辑结构不同于下列()的逻辑结构。

(A) 线性表(B) 栈(C) 队列(D) 树

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

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

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

(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的容量至少应该是()。

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

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

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

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

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

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

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

10.10. 设有以下四种排序方法,则()的空间复杂度最大。

(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

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

}

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

三、应用题(30分)

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),散列表的长度为8,散列函数H(k)=k mod 7,要求分别用线性探测和链地址法作为解决冲突的方法设计哈希表。

5.设无向图G(所右图所示),要求给出该图的深度优先和广度优先遍历的序列并给出该图的最小生成树。

四、算法设计题(20分)

1. 设计判断单链表中结点是否关于中心对称算法。

2. 设计在链式存储结构上建立一棵二叉树的算法。

3. 设计判断一棵二叉树是否是二叉排序树的算法。

数据结构试卷参考答案

一、选择题

1.C

2.C

3.D

4.C

5.A

6.C

7.C

8.B

9.B 10.B

二、填空题

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. CBA

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. 线性探测:

68

27

32

25

10

8

7

6

5

4

3

2

1

Λ

Λ

链地址法:

27

68

32

25

10

8

6

5

4

3

2

1

>

-

>

-

>

-

>

-

>

-

>

-

h

h

h

h

h

h

h

5. 深度:125364,广度:123456,最小生成树T的边集为E={(1,4),(1,3),(3,5),(5,6),(5,6)}

四、算法设计题

1. 设计判断单链表中结点是否关于中心对称算法。

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

int lklistsymmetry(lklist *head)

{

sqstack stack; stack.top= -1; lklist *p;

for(p=head;p!=0;p=p->next) {stack.top++; stack.s[stack.top]=p->data;}

for(p=head;p!=0;p=p->next) if (p->data==stack.s[stack.top]) stack.top=stack.top-1; else return(0);

return(1);

}

2. 设计在链式存储结构上建立一棵二叉树的算法。

typedef char datatype;

typedef struct node {datatype data; struct node *lchild,*rchild;} bitree;

void createbitree(bitree *&bt)

{

char ch; scanf("%c",&ch);

if(ch=='#') {bt=0; return;}

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

createbitree(bt->lchild); createbitree(bt->rchild);

}

3.

设计判断一棵二叉树是否是二叉排序树的算法。

int minnum=-32768,flag=1;

typedef struct node{int key; struct node *lchild,*rchild;}bitree; void inorder(bitree *bt)

{

if (bt!=0)

{inorder(bt->lchild); if(minnum>bt->key)flag=0; minnum=bt->key; inorder(bt->rchild);}

}

数据结构考试试题及答案

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

大数据考试题含答案精编WORD版

大数据考试题含答案精 编W O R D版 IBM system office room 【A0816H-A0912AAAHH-GX8Q8-GNTHHJ8】

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. 指无法在可承受的时间范围内用常规软件工具进行捕捉、管理和处理的数据集合 B. 任何超过了一台计算机处理能力的数据量 C. 技术 D. 商业 7 多选大数据五大类应用方向是: A. 查询

B. 触达 C. 统计 D. 预警 E. 预测 8 多选以下哪些指标是衡量大数据应用成功的标准? A. 成本更低 B. 质量更高 C. 速度更快 D. 风险更低 9 多选大数据有哪些价值? A. 用户身份识别 B. 描述价值 C. 实时价值 D. 预测价值 E. 生产数据的价值 10 多选大数据的预测价值体现在:

A. 预测用户的偏好、流失 B. 预测热卖品及交易额 C. 预测经营趋势 D. 评价 11 单选什么是大数据使用的最可靠方法? A. 大数据源 B. 样本数据源 C. 规模大 D. 大数据与样本数据结合 12 多选大数据是描述()所发生的行为。 A. 未来 B. 现在 C. 过去 D. 实时 13 多选传统研究中数据采集的方法包括: A. 网络监测

数据结构模拟题(开卷)

《数据结构》模拟题(补) 一.单项选择题 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

山东大学软件学院2014-2015数据结构真题

1.二分搜索一个14个数的数组,查找A[4]所经过的元素有____. 2.一个序列先入栈,再出栈,出栈元素加入队列,生成一个新的顺序(已给出),则栈结构最少需要能保存几个元素_______. 3.一个5000个元素的数据需要排序,在堆排序,基数排序,快速排序里,要求速度最快,选哪一个______. 4.n个结点的m序B树,有____个外部节点。一个5序B树有53个结点,该B树至少有___ 层。 5.已给出一个K=11的散列表已有三个元素,再插入两个元素,则这两个元素的位置是________. 6.已给出一个无序数组,选第一个元素作为基点,快排一趟之后的顺序为____________________. 7.一个图已给3条边,再添加一条边,使其有唯一的拓扑序列,添加的边是_______,拓扑序列为____________. 8已给出一个序列,初始化为最小堆____________________。 1.跳表和散列,分别搜索最小元素写出思想和时间复杂度。 2.已给出一个序列,写出建立A VL树的过程,及删除某一个元素后的结果。 3.已给出一个有向图,写出对应的邻接表,根据Dijkstra算法写出某个顶点到其余各顶点的最短路径。 4.已给出一颗公式化描述的二叉树,画出二叉树并写出前中后序列及转化成森林。 5.无向图用公式化描述,为简化,用数组M表示上三角矩阵。写出A[i,j]到M的映射关系,说明如何求任意顶点i的度。 6.6个有序的序列,20 30 40 60 70 100 通过5次两两合并,生成一个有序的序列,求最少次数的合并过程。 1.删除链表形式的二叉搜索树的最大元素,写出思想,算法实现,时间复杂度。 2.邻接链表表示的图写出算法判断是否存在V->U的路径,以及思想。

数据结构模拟试题及答案

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

山东大学网络教育《数据结构》( A 卷)

《数据结构》模拟卷 一、选择题 1.在一个长度为n的顺序表的任一位置插入一个新元素的渐进时间复杂度为(A )。 A. O(n) B. O(n/2) C. O(1) D. O(n2) 2.带头结点的单链表first为空的判定条件是:(B )。 A. first == NULL; B. first->link == NULL; C. first->link == first; D. first != NULL; 3. 从逻辑上可以把数据结构分为(C )两大类。 A.动态结构、静态结构B.顺序结构、链式结构 C.线性结构、非线性结构D.初等结构、构造型结构 4.在系统实现递归调用时需利用递归工作记录保存实际参数的值。在传值参数情形,需为 对应形式参数分配空间,以存放实际参数的副本;在引用参数情形,需保存实际参数的( D ),在被调用程序中可直接操纵实际参数。 A. 空间 B. 副本 C. 返回地址 D. 地址 5. 以下数据结构中,哪一个是线性结构(D )。 A.广义表 B. 二叉树 C. 稀疏矩阵 D. 串 6. 以下属于逻辑结构的是(C )。 A.顺序表 B. 哈希表 C.有序表 D. 单链表 7.对于长度为9的有序顺序表,若采用折半搜索,在等概率情况下搜索成功的平均搜索长 度为( C )的值除以9。 A. 20 B. 18 C. 25 D. 22 8.在有向图中每个顶点的度等于该顶点的( C )。 A. 入度 B. 出度 C. 入度与出度之和 D. 入度与出度之差 9.在基于排序码比较的排序算法中,( C )算法的最坏情况下的时间复杂度不高于

O(nlog2n)。 A. 起泡排序 B. 希尔排序 C. 归并排序 D. 快速排序 10.当α的值较小时,散列存储通常比其他存储方式具有( B )的查找速度。 A. 较慢 B. 较快 C. 相同 D.不同 二、填空题 1.二维数组是一种非线性结构,其中的每一个数组元素最多有___2___个直接前驱(或直 接后继)。 2.将一个n阶三对角矩阵A的三条对角线上的元素按行压缩存放于一个一维数组B中, A[0][0]存放于B[0]中。对于任意给定数组元素B[K],它应是A中第_「(K+1)/3」_行的元素。 3.链表对于数据元素的插入和删除不需移动结点,只需改变相关结点的_指针__域的值。 4.在一个链式栈中,若栈顶指针等于NULL则为__空栈__。 5.主程序第一次调用递归函数被称为外部调用,递归函数自己调用自己被称为内部调用, 它们都需要利用栈保存调用后的__返回___地址。 6.在一棵树中,_叶子_结点没有后继结点。 7.一棵树的广义表表示为a (b (c, d (e, f), g (h) ), i (j, k (x, y) ) ),结点f的层数为__3__。假定 根结点的层数为0。 8.在一棵AVL树(高度平衡的二叉搜索树)中,每个结点的左子树高度与右子树高度之差 的绝对值不超过__1____。 9.n (n﹥0) 个顶点的无向图最多有_n(n-1)/2__条边,最少有___0___条边。 10.在索引存储中,若一个索引项对应数据对象表中的一个表项(记录),则称此索引为_ 稠密_索引,若对应数据对象表中的若干个表项,则称此索引为__稀疏__索引。 三、判断题 1.数组是一种复杂的数据结构,数组元素之间的关系既不是线性的也不是树形的(对) 2.链式存储在插入和删除时需要保持物理存储空间的顺序分配,不需要保持数据元素之间 的逻辑顺序(错) 3.在用循环单链表表示的链式队列中,可以不设队头指针,仅在链尾设置队尾指针(对)

《数据结构C》模拟试题

山东科技大学继续教育学院 《数据结构C》模拟试题一 班级姓名学号 一、选择题(20分) 1. 组成数据的基本单位是( )。 (A) 数据项(B)数据类型(C)数据元素(D)数据变量 2. 线性表的链接实现有利于( )运算。 (A) 插入(B)读表元(C)查找(D)定位 3. 串的逻辑结构与( )的逻辑结构不同。 (A) 线性表(B)栈(C)队列(D)树 4. 二叉树第i(i≥1)层最多有( )个结点。 (A) 2i(B)2i (C) 2i-1(D) 2i-1 5. 设单链表中p指向结点A,若要删除A后结点(若存在),则需要修改p的操作为( ) (A) p.Next = p.Next.Next (B)p=p.Next (C)p=p.Next.Next (D)p.Next=p 6. 设一数列的输入顺序为1,2,3,4,5,6,通过栈操作不可能排成的输出序列为( ) (A) 3,2,5,6,4,1 (B) 1,5,4,6,2,3 (C) 2,4,3,5,1,6 (D) 4,5,3,6,2,1 7. 设字符串S1=’ABCDEFG’,S2=’PQRST’,则运算S=CONCAT(SUB(S1,2,LENGTH(S2)),SUB(S1,LENGTH(S2),2))的结果为( ) (A) ‘BCQR’ (B) ‘BCDEF’ (C) ’BCDEFG’ (D) ‘BCDEFEF’ 8. 有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,a11为第一元素,其存储地址为1,每个元素占1个地址空间,则a85地址为( ) (A)13 (B) 33 (C) 18 (D) 40 9. 如果结点A有3个兄弟,而且B为A的双亲,则B的度为( ) (A) 3 (B) 4 (C) 5 (D) 1 10. 线索化二叉树中某结点D没有左孩子的必要条件是( ) (A) D.Lchild=null (B) D.ltag=1 (C) D.Rchild=null (D) D.ltag=0 二、填空题(20分) 1. 对于一个以顺序实现的循环队列Q[0..m_1],队头、队尾指针分别为f,r,其判空的条件是 ,判满的条件是。 2. 循环链表的主要优点是。 3. 给定一个整数集合{3,5,6,9,12},画出其对应的一棵Huffman树。 4 双向循环链表中,在p所指的结点之后插入f所指的结点,其操作为。 5. 下列为朴素的模式匹配算法,请在算法的处填入正确的子句。

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

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

模拟试卷一 一、单选题(每题 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),下面哪一个序列是从上述序列出发建 堆的结果?( )

山大网络教育《数据结构》(-C-卷)

山大网络教育《数据结构》(-C-卷)

《数据结构》模拟卷 一、单项选择题 1.数据结构是()。 A.一种数据类型 B.数据的存储结构 C.一组性质相同的数据元素的集合 D.相互之间存在一种或多种特定关系的数据元素的集合 2.算法分析的目的是( B )。 A.辨别数据结构的合理性 B.评价算法的效率 C.研究算法中输入与输出的关系 D.鉴别算法的可读性 3.在线性表的下列运算中,不.改变数据元素之间结构关系的运算是( D )。 A.插入B.删除 C.排序D.定位 4.若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,则可能出现的出栈序列为( B )。 A.3,2,6,1,4,5 B.3,4,2,1,6,5

C.1,2,5,3,4,6 D.5,6,4,2,3,1 5.设串sl=″Data Structures with Java″,s2=″it″,则子串定位函数index(s1,s2)的值为( D )。 A.15 B.16 C.17 D.18 6.二维数组A[8][9]按行优先顺序存储,若数组元素A[2][3]的存储地址为1087,A[4][7]的存储地址为1153,则数组元素A[6][7]的存储地址为( A )。 A.1207 B.1209 C.1211 D.1213 7.在按层次遍历二叉树的算法中,需要借助的辅助数据结构是( A )。 A.队列B.栈 C.线性表D.有序表 8.在任意一棵二叉树的前序序列和后序序列中,各叶子之间的相对次序关系( B )。A.不一定相同B.都相同 C.都不相同D.互为逆序 9.若采用孩子兄弟链表作为树的存储结构,则树的后序遍历应采用二叉树的( C )。

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

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

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

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)首先提出的。(单选题,本题2分) A:微软 B:百度 C:谷歌 D:阿里巴巴 2、大数据的起源是(C )。(单选题,本题2分) A:金融 B:电信 C:互联网 D:公共管理 3、根据不同的业务需求来建立数据模型,抽取最有意义的向量,决定选取哪种方法的数据分析角色人员是(C)。(单选题,本题2分) A:数据管理人员 B:数据分析员 C:研究科学家 D:软件开发工程师 4、(D )反映数据的精细化程度,越细化的数据,价值越高。(单选题,本题2分) A:规模 B:活性 C:关联度 D:颗粒度 5、数据清洗的方法不包括( D)。(单选题,本题2分) A:缺失值处理 B:噪声数据清除 C:一致性检查 D:重复数据记录处理 6、智能健康手环的应用开发,体现了( D)的数据采集技术的应用。(单选题,本题2分) A:统计报表 B:网络爬虫 C:API接口 D:传感器 7、下列关于数据重组的说法中,错误的是(A)。(单选题,本题2分) A:数据重组是数据的重新生产和重新采集 B:数据重组能够使数据焕发新的光芒 C:数据重组实现的关键在于多源数据融合和数据集成 D:数据重组有利于实现新颖的数据模式创新 8、智慧城市的构建,不包含( C)。(单选题,本题2分) A:数字城市 B:物联网 C:联网监控 D:云计算 9、大数据的最显著特征是(A)。(单选题,本题2分) A:数据规模大 B:数据类型多样 C:数据处理速度快 D:数据价值密度高10、美国海军军官莫里通过对前人航海日志的分析,绘制了新的航海路线图,标明了大风与洋流可能发生的地点。这体现了大数据分析理念中的(B )。(单选题,本题2分) A:在数据基础上倾向于全体数据而不是抽样数据 B:在分析方法上更注重相关分析而不是因果分析 C:在分析效果上更追究效率而不是绝对精确 D:在数据规模上强调相对数据而不是绝对数据 11、下列关于舍恩伯格对大数据特点的说法中,错误的是(D)。(单选题,本题2分) A:数据规模大 B:数据类型多样 C:数据处理速度快 D:数据价值密度高12、当前社会中,最为突出的大数据环境是(A)。(单选题,本题2分) A:互联网 B:物联网 C:综合国力 D:自然资源 13、在数据生命周期管理实践中,( B)是执行方法。(单选题,本题2分) A:数据存储和备份规范 B:数据管理和维护 C:数据价值发觉和利用 D:数据应用开发和管理 14、下列关于网络用户行为的说法中,错误的是(C)。(单选题,本题2分) A:网络公司能够捕捉到用户在其网站上的所有行为 B:用户离散的交互痕迹能够为企业提升服务质量提供参考 C:数字轨迹用完即自动删除 D:用户的隐私安全很难得以规范保护 15、下列关于计算机存储容量单位的说法中,错误的是( C)。(单选题,本题2分) A:1KB<1MB<1GB B:基本单位是字节(Byte) C:一个汉字需要一个字节的存储空间 D:一个字节能够容纳一个英文字符, 16、下列关于聚类挖掘技术的说法中,错误的是(B)。(单选题,本题2分) A:不预先设定数据归类类目,完全根据数据本身性质将数据聚合成不同类别

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

数据结构设计课程代码: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、堆

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

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

数据结构期末模拟试题05(有答案)

课程测试试题(卷) ----------------------以下为教师填写-------------------- I、命题院(部):数学与计算机科学学院 II、课程名称:数据结构 III、测试学期:20 -20 学年度第学期 IV、测试对象:学院专业级班 V、问卷页数(A4):页 VI、答卷页数(A4):页 VII、考试方式:闭卷(开卷、闭卷或课程小论文,请填写清楚) VIII、问卷内容:(请老师在出题时安排紧凑,填空题象征性的留出一点空格,学生将所有的答案做在答题纸上的规定位置,并写清楚大题、小题的题号) 一、单选题(每题 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时,需要执行的操作是 ________________;删除一个结点时,需要执行的操作是 ______________________________(假设栈不空而且无需回收被删除结点)。

山东大学数据结构第1-3章作业

第一章作业 第章作 试编个递归数来输个素的 5. 试编写一个递归函数,用来输出n 个元素的 所有子集。例如,三个元素{a, b, c} 的所有子集是:{ }(空集),{a}, {b}, {c}, {a, b}, {a, c}, {,}{,,} b, c} 和a, b, c。

基本思想: 用一个一维数组x[1:n]表示大小为n的数组的一个子集。 如果第j个元素包含在子集中,那么x[j]=1 ,否则x[j]=0; x[j]0 例如原数组为{a,b},那么他的子集为{0,0},{0,1},{1,0},{1,1}。分别对应子集{?},{}{}{} {b},{a},{a,b}.

函数实现: #include // 定义全局变量,n在主函数种初始化 //定义全局变量在主函数种初始化 int x[20], // 子集向量,假设大小为20 n; // 数组元素个数 void Subsets(int i,int n) {// 输出数组a[i:n].的所有子集 只有[]在每次递归调用时改变[],被确定为了或// x[i:n] 在每次递归调用时改变,x[1:i-1],已经被确定为了0 1 if (i == n) {// x[n] 可以是0或1 // 输出不包含元素n的子集 x[n] 0; x[n]=0; for (int j = 1; j <= n; j++) cout << x[j] << " "; cout << endl; cout<

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。

相关主题
文本预览
相关文档 最新文档