南邮通达2015数据结构B刷题试题及答案 联系客服

发布时间 : 星期二 文章南邮通达2015数据结构B刷题试题及答案更新完毕开始阅读58edaf846c85ec3a86c2c560

数据结构试卷(八)

一、选择题(30分)

1. 字符串的长度是指( )。

(A) 串中不同字符的个数 (C) 串中所含字符的个数

(B) 串中不同字母的个数 (D) 串中不同数字的个数

2. 建立一个长度为n的有序单链表的时间复杂度为( )

(A) O(n)

(B) O(1)

(C) O(n2)

(D) O(log2n)

3. 两个字符串相等的充要条件是( )。

(A) 两个字符串的长度相等

(B) 两个字符串中对应位置上的字符相等

(C) 同时具备(A)和(B)两个条件 (D) 以上答案都不对

4. 设某散列表的长度为100,散列函数H(k)=k % P,则P通常情况下最好选择

( )。

(A) 99

(B) 97

(C) 91

(D) 93

5. 在二叉排序树中插入一个关键字值的平均时间复杂度为( )。

(A) O(n)

(B) O(1og2n)

(C) O(nlog2n)

(D) O(n2)

6. 设一个顺序有序表A[1:14]中有14个元素,则采用二分法查找元素A[4]的过

程中比较元素的顺序为( )。

(A) A[1],A[2],A[3],A[4] (C) A[7],A[3],A[5],A[4]

(B) A[1],A[14],A[7],A[4] (D) A[7],A[5] ,A[3],A[4]

7. 设一棵完全二叉树中有65个结点,则该完全二叉树的深度为( )。

(A) 8

(B) 7

(C) 6

(D) 5

8. 设一棵三叉树中有2个度数为1的结点,2个度数为2的结点,2个度数为3

的结点,则该三叉链权中有( )个度数为0的结点。

(A) 5

(B) 6

(C) 7

(D) 8

29

9. 设无向图G中的边的集合E={(a,b),(a,e),(a,c),(b,e),(e,d),(d,

f),(f,c)},则从顶点a出发进行深度优先遍历可以得到的一种顶点序列为( )。

(A) aedfcb

(B) acfebd

(C) aebcfd

(D) aedfbc

10. 队列是一种( )的线性表。

四、算法设计题(20分)

1. 设计一个在链式存储结构上统计二叉树中结点个数的算法。 设计一个在链式存储结构上统计二叉树中结点个数的算法。

void countnode(bitree *bt,int &count) {

if(bt!=0)

{count++; countnode(bt->lchild,count); countnode(bt->rchild,count);} }

2. 设计一个算法将无向图的邻接矩阵转为对应邻接表的算法。 设计一个算法将无向图的邻接矩阵转为对应邻接表的算法。

typedef struct {int vertex[m]; int edge[m][m];}gadjmatrix;

typedef struct node1{int info;int adjvertex; struct node1 *nextarc;}glinklistnode;

typedef struct node2{int vertexinfo;glinklistnode *firstarc;}glinkheadnode; void adjmatrixtoadjlist(gadjmatrix g1[ ],glinkheadnode g2[ ]) {

int i,j; glinklistnode *p;

for(i=0;i<=n-1;i++) g2[i].firstarc=0; for(i=0;i<=n-1;i++) for(j=0;j<=n-1;j++) if (g1.edge[i][j]==1) {

p=(glinklistnode *)malloc(sizeof(glinklistnode));p->adjvertex=j; p->nextarc=g[i].firstarc; g[i].firstarc=p;

p=(glinklistnode *)malloc(sizeof(glinklistnode));p->adjvertex=i; p->nextarc=g[j].firstarc; g[j].firstarc=p; }

}

30

(A) 先进先出 (B) 先进后出 (C) 只能插入 (D) 只能删除

31

数据结构试卷(九)

一、选择题(30分)

1.下列程序段的时间复杂度为( )。

for(i=0; i

for(i=0; i

(B) O(m+n+t)

(C) O(m+n*t)

(D) O(m*t+n)

2.设顺序线性表中有n个数据元素,则删除表中第i个元素需要移动( )个元素。 (A) n-i

(B) n+l -i

(C) n-1-i

(D) i

3.设F是由T1、T2和T3三棵树组成的森林,与F对应的二叉树为B,T1、T2和T3的结点数分别为N1、N2和N3,则二叉树B的根结点的左子树的结点数为( )。 (A) N1-1

(B) N2-1

(C) N2+N3

(D) N1+N3

4.利用直接插入排序法的思想建立一个有序线性表的时间复杂度为( )。 (A) O(n)

(B) O(nlog2n)

(C) O(n2)

(D) O(1og2n)

5.设指针变量p指向双向链表中结点A,指针变量s指向被插入的结点X,则在结点A的后面插入结点X的操作序列为( )。

(A) p->right=s; s->left=p; p->right->left=s; s->right=p->right; (B) s->left=p;s->right=p->right;p->right=s; p->right->left=s; (C) p->right=s; p->right->left=s; s->left=p; s->right=p->right; (D) s->left=p;s->right=p->right;p->right->left=s; p->right=s; 6.下列各种排序算法中平均时间复杂度为O(n2)是( )。 (A) 快速排序

(B) 堆排序

(C) 归并排序 (D) 冒泡排序

32