2011数据结构本科A

2011数据结构本科A
2011数据结构本科A

武汉大学计算机学院

2010年-2011学年第二学期“数据结构”考试试题(A)

要求:所有的题目的解答均写在答题纸上,需写清楚题目的序号。每张答题纸都要写上姓名和学号。

一、单项选择题(每小题1.5分,共计30分)

1. 数据结构是指。

A. 一种数据类型

B. 数据的存储结构

C. 一组性质相同的数据元素的集合

D. 相互之间存在一种或多种特定关系的数据元素的集合

2. 以下算法的时间复杂度为。

void fun(int n)

{ int i=1;

while (i<=n)

i++;

}

A. O(n)

B. O(n)

C. O(nlog2n)

D. O(log2n)

3. 在一个长度为n的有序顺序表中删除元素值为x的元素时,在查找元素x时采用二分查找,此时的时间复杂度为。

A. O(n)

B. O(nlog2n)

C. O(n2)

D. O(n)

4. 在一个带头结点的循环单链表L中,删除元素值为x的结点,算法的时间复杂度为。

A. O(n)

B. O(n)

C. O(nlog2n)

D. O(n2)

5. 若一个栈采用数组s[0..n-1]存放其元素,初始时栈顶指针为n,则以下元素x进栈的正确操作是。

A.top++;s[top]=x;

B.s[top]=x;top++;

C.top--;s[top]=x; B.s[top]=x;top--;

6. 中缀表达式“2*(3+4)-1”的后缀表达式是,其中#表示一个数值的结束。

A. 2#3#4#1#*+-

B. 2#3#4#+*1#-

C. 2#3#4#*+1#-

D. -+*2#3#4#1#

7. 设环形队列中数组的下标为0~N-1,其队头、队尾指针分别为front和rear(front 指向队列中队头元素的前一个位置,rear指向队尾元素的位置),则其元素个数为。

A. rear-front

B. rear-front-1

C. (rear-front)%N+1

D. (rear-front+N)%N

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

A. 1和5

B. 2和4

C. 4和2

D. 5和1

9. 一棵深度为h(h≥1)的完全二叉树至少有个结点。

A. 2h-1

B. 2h

C. 2h+1

D. 2h-1+1

10. 一棵含有n个结点的线索二叉树中,其线索个数为。

A. 2n

B. n-1

C. n+1

D. n

11. 设一棵哈夫曼树中有1999个结点,该哈夫曼树用于对个字符进行编码。

A. 999

B. 998

C. 1000

D. 1001

12. 一个含有n个顶点的无向连通图采用邻接矩阵存储,则该矩阵一定是。

A. 对称矩阵

B. 非对称矩阵

C. 稀疏矩阵

D. 稠密矩阵

13. 设无向连通图有n个顶点e条边,若满足,则图中一定有回路。

A. e≥n

B. e

C. e=n-1

D. 2e≥n

14. 对于AOE网的关键路径,以下叙述是正确的。

A. 任何一个关键活动提前完成,则整个工程一定会提前完成

B. 完成整个工程的最短时间是从源点到汇点的最短路径长度

C. 一个AOE网的关键路径一定是唯一的

D. 任何一个活动持续时间的改变可能会影响关键路径的改变

15. 设有100个元素的有序表,用折半查找时,不成功时最大的比较次数是。

A. 25

B. 50

C. 10

D. 7

16. 在一棵m阶B-树中删除一个关键字会引起合并,则该结点原有个关键字。

A. 1

B. ?m/2?

C. ?m/2?-1

D. ?m/2?+1

17. 哈希查找方法一般适用于情况下的查找。

A. 查找表为链表

B. 查找表为有序表

C. 关键字集合比地址集合大得多

D. 关键字集合与地址集合之间存在着某种对应关系。

18. 对含有n个元素的顺序表采用直接插入排序方法进行排序,在最好情况下算法的时间复杂度为。

A. O(n)

B. O(nlog2n)

C. O(n2)

D. O(n)

19. 用某种排序方法对数据序列{24,88,21,48,15,27,69,35,20}进行递增排序,元素序列的变化情况如下:

(1){24,88,21,48,15,27,69,35,20}

(2){20,15,21,24,48,27,69,35,88}

(3){15,20,21,24,35,27,48,69,88}

(4){15,20,21,24,27,35,48,69,88}

则所采用的排序方法是。

A. 快速排序

B. 简单选择排序

C. 直接插入排序

D. 归并排序

20. 以下序列是堆的是。

A. {75,65,30,15,25,45,20,10}

B. {75,65,45,10,30,25,20,15}

C. {75,45,65,30,15,25,20,10}

D. {75,45,65,10,25,30,20,15}

二、问答题(共4小题,每小题10分,共计40分)

1. 如果对含有n(n>1)个元素的线性表的运算只有4种:删除第一个元素;删除最后一个元素;在第一个元素前面插入新元素;在最后一个元素的后面插入新元素,则最好使用以下哪种存储结构,并简要说明理由。

(1)只有尾结点指针没有头结点指针的循环单链表

(2)只有尾结点指针没有头结点指针的非循环双链表

(3)只有头结点指针没有尾结点指针的循环双链表

(4)既有头结点指针也有尾结点指针的循环单链表

2. 已知一棵度为4的树中,其度为0、1、2、3的结点数分别为14、4、3、2,求该树的结点总数n和度为4的结点个数,并给出推导过程。

3. 有人提出这样的一种从图G中顶点u开始构造最小生成树的方法:

假设G=(V,E)是一个具有n个顶点的带权连通无向图,T=(U,TE)是G的最小生成树,其中U是T的顶点集,TE是T的边集,则由G构造从起始顶点u出发的最小生成树T的步骤如下:

(1)初始化U={u}。以u到其他顶点的所有边为候选边。

(2)重复以下步骤n-1次,使得其他n-1个顶点被加入到U中。

从候选边中挑选权值最小的边加入到TE,设该边在V-U中的顶点是v,将v加入U中。

考查顶点v,将v与V-U顶点集中的所有边作为新的候选边。

若此方法求得的T是最小生成树,请予以证明。若不能求得最小边,请举出反例。

4. 有一棵二叉排序树按先序遍历得到的序列为:(12,5,2,8,6,10,16,15,18,20)。回答以下问题:

(1)画出该二叉排序树。

(2)给出该二叉排序树的中序遍历序列。

(3)求在等概率下的查找成功和不成功情况下的平均查找长度。

三、算法设计题(每小题10分,共计30分)

1. 设A和B是两个结点个数分别为m和n的单链表(带头结点),其中元素递增有序。设计一个尽可能高效的算法求A和B的交集,要求不破坏A、B的结点,将交集存放在单链表C中。给出你所设计的算法的时间复杂度和空间复杂度。

2. 假设二叉树b采用二叉链存储结构,设计一个算法void findparent(BTNode *b,ElemType x,BTNode *&p)求指定值为x的结点的双亲结点p,提示,根结点的双亲为NULL,若在b中未找到值为x的结点,p亦为NULL。

3. 假设一个连通图采用邻接表G存储结构表示。设计一个算法,求起点u到终点v的经过顶点k的所有路径。

四、附加题(10分)

说明:附加题不计入期未考试总分,但计入本课程的总分。

假设某专业有若干个班,每个班有若干学生,每个学生包含姓名和分数,这样构成一棵树,如图1所示。假设树中每个结点的name域均不相同,该树采用孩子兄弟链存储结构,其结点类型定义如下:

typedef struct node

{ char name[50]; //专业、班号或姓名

float score; //分数

struct node *child; //指向最左边的孩子结点

struct node *brother; //指向下一个兄弟结点

} TNode;

完成以下算法:

(1)设计一个算法求所有的学生人数。

(2)求指定某班的平均分。

图1 一棵学生成绩树

“数据结构”考试试题(A )参考答案

要求:所有的题目的解答均写在答题纸上,需写清楚题目的序号。每张答题纸都要写上姓名和学号。

一、单项选择题(每小题1.5分,共计30分)

1. D

2. A

3. B

4. A

5. C

6. B

7. D

8. B

9. A 10. C 11. C 12. A 13. A 14. D 15. D 16. C

17. D

18. A

19. A

20. C

二、问答题(共4小题,每小题10分,共计40分)

1. 答:本题答案为(3),因为实现上述4种运算的时间复杂度均为O(1)。

【评分说明】选择结果占4分,理由占6分。若结果错误,但对各操作时间复杂度作了分析,可给2~5分。

2. 答:结点总数n =n 0+n 1+n 2+n 3+n 4,即n =23+n 4,又有:度之和=n -1=0×n 0+1×n 1+2×n 2+3 ×n 3+4×n 4,即n =17+4n 4,综合两式得:n 4=2,n =25。所以,该树的结点总数为25,度为4的结点个数为2。

【评分说明】结果为4分,过程占6分。

3. 答:此方法不能求得最小生成树。例如,对于如图5.1(a )所示的带权连通无向图,按照上述方法从顶点0开始求得的结果为5.1(b )所示的树,显然它不是最小生成树,正确的最小生成树如图5.1(c )所示。

在有些情况下,上述方法无法求得结果,例如对于如图5.1(d )所示的带权连通无向图,从顶点0出发,找到顶点1(边(0,1)),从顶点1出发,找到顶点3(边(1,3)),再从顶点3出发,找到顶点0(边(3,0))

(a ) (d )

(b ) (c )

图1 求最小生成树的反例

说明:只需给出一种情况即可。

【评分说明】回答不能求得最小生成树得5分,反例为5分。若指出可求得最小生成树,根据证明过程给1~2分。

4. 答:(1)先序遍历得到的序列为:(12,5,2,8,6,10,16,15,18,20),中序序列是一个有序序列,所以为:(2,5,6,8,10,12,15,16,18,20),由先序序列和中序序列可以构造出对应的二叉树,如图2所示。

(2)中序遍历序列为:2,5,6,8,10,12,15,16,18,20。

(3)ASL成功=(1×1+2×2+4×3+3×4)/10=29/10。

ASL不成功=(5×3+6×4/11=39/11。

图2

【评分说明】(1)小题占6分,(2)(3)小题各占2分。

三、算法设计题(每小题10分,共计30分)

1. 设A和B是两个结点个数分别为m和n的单链表(带头结点),其中元素递增有序。设计一个尽可能高效的算法求A和B的交集,要求不破坏A、B的结点,将交集存放在单链表C中。给出你所设计的算法的时间复杂度和空间复杂度。

解:算法如下:

void insertion(LinkList *A,LinkList *B,LinkList *&C)

{ LinkList *p=A->next,*q=B->next,*s,*t;

C=(LinkList *)malloc(sizeof(LinkList));

t=C;

while (p!=NULL && q!=NULL)

{ if (p->data==q->data)

{ s=(LinkList *)malloc(sizeof(LinkList));

s->data=p->data;

t->next=s;

t=s;

p=p->next;

q=q->next;

}

else if (p->datadata)

p=p->next;

else

q=q->next;

}

t->next=NULL;

}

算法的时间复杂度为O(m+n),空间复杂度为O(MIN(m,n))。

【评分说明】算法为8分,算法的时间复杂度和空间复杂度各占1分。

2. 假设二叉树b采用二叉链存储结构,设计一个算法void findparent(BTNode *b,ElemType x,BTNode *&p)求指定值为x的结点的双亲结点p,提示,根结点的双亲为NULL,若未找到这样的结点,p亦为NULL。

解:算法如下:

void findparent(BTNode *b,ElemType x,BTNode *&p)

{ if (b!=NULL)

{ if (b->data==x) p=NULL;

else if (b->lchild!=NULL && b->lchild->data==x)

p=b;

else if (b->rchild!=NULL && b->rchild->data==x)

p=b;

else

{ findparent(b->lchild,x,p);

if (p==NULL)

findparent(b->rchild,x,p);

}

}

else p=NULL;

}

【评分说明】本题有多种解法,相应给分。

3. 假设一个连通图采用邻接表G存储结构表示。设计一个算法,求起点u到终点v的经过顶点k的所有路径。

解:算法如下:

int visited[MAXV]={0}; //全局变量

void PathAll(ALGraph *G,int u,int v,int k,int path[],int d)

//d是到当前为止已走过的路径长度,调用时初值为-1

{ int m,i;

ArcNode *p;

visited[u]=1;

d++; //路径长度增1

path[d]=u; //将当前顶点添加到路径中

if (u==v && In(path,d,k)==l) //输出一条路径

{ printf(" ");

for (i=0;i<=d;i++)

printf("%d ",path[i]);

printf("\n");

}

p=G->adjlist[u].firstarc; //p指向顶点u的第一条弧的弧头节点

while (p!=NULL)

{ m=p->adjvex; //m为u的邻接点

if (visited[m]==0) //若该顶点未标记访问,则递归访问之

PathAll(G,m,v,l,path,d);

p=p->nextarc; //找u的下一个邻接点

}

visited[u]=0; //恢复环境:使该顶点可重新使用

}

int In(int path[],int d,int k) //判断顶点k是否包含在路径中

{ int i;

for (i=0;i<=d;i++)

if (path[i]==k)

return 1;

return 0;

}

【评分说明】本题采用DFS算法给出一条路径时给8分,采用BFS算法给出一条路径时给6分。

四、附加题(10分)

说明:附加题不计入期未考试总分,但计入本课程的总分。

假设某专业有若干个班,每个班有若干学生,每个学生包含姓名和分数,这样构成一棵树,如图1所示。假设树中每个结点的name域均不相同,该树采用孩子兄弟链存储结构,其结点类型定义如下:

typedef struct node

{ char name[50]; //专业、班号或姓名

float score; //分数

struct node *child; //指向最左边的孩子结点

struct node *brother; //指向下一个兄弟结点

} TNode;

完成以下算法:

(1)设计一个算法求所有的学生人数。

(2)求指定某班的平均分。

图1 一棵学生成绩树

解:(1)算法如下:

int count(TNode *b)

{

if (b==NULL) return 0;

if (b->child==NULL) return 1;

return count(b->child)+count(b->brother);

}

说明:本题可以从链表的角度求解。

(2)算法如下:

int average(TNode *b,char class[],float &avg) {

int n=0;

float sum=0;

TNode *p=b->child; //p指向班号结点

while (p!=NULL && strcmp(p->name,class)!=0) p=p->brother;

if (p==NULL) return 0; //没找到该班号,返回0

p=p->child; //p指向该班的第一个学生while (p!=NULL)

{

n++; //累计人数

sum+=p->score; //累计分数

p=p->brother;

}

avg=sum/n; //求平均分

return 1;

}

【评分说明】两小题各占5分。

数据结构标准答案

全国2011年1月高等教育自学考试 数据结构试题 课程代码:02331 一、单项选择题(本大题共15小题,每小题2分,共30分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1.下列选项中与数据存储结构无关的术语是() A.顺序表 B.链表 C.链队列 D.栈 2.将两个各有n个元素的有序表归并成一个有序表,最少的比较次数是() A.n-1 B.n C.2n-1 D.2n 3.已知循环队列的存储空间大小为m,队头指针front指向队头元素,队尾指针rear指向队尾元素的下一个位置,则 向队列中插入新元素时,修改指针的操作是() A.rear=(rear-1)%m; B.front=(front+1)%m; C.front=(front-1)%m; D.rear=(rear+1)%m; 4.递归实现或函数调用时,处理参数及返回地址,应采用的数据结构是()???? A.堆栈 B.多维数组 C.队列 D.线性表 5.设有两个串p和q,其中q是p的子串,则求q在p中首次出现位置的算法称为()p55 A.求子串 B.串联接 C.串匹配 D.求串长 6.对于广义表A,若head(A)等于tail(A),则表A为()p66 A.( ) B.(( )) C.(( ),( )) D.(( ),( ),( )) 7.若一棵具有n(n>0)个结点的二叉树的先序序列与后序序列正好相反,则该二叉树一定是() A.结点均无左孩子的二叉树 B.结点均无右孩子的二叉树 C.高度为n的二叉树 D.存在度为2的结点的二叉树 8.若一棵二叉树中度为l的结点个数是3,度为2的结点个数是4,则该二叉树叶子结点的个数是()p73 A.4 B.5 C.7 D.8 9.下列叙述中错误的是()108 A.图的遍历是从给定的源点出发对每一个顶点访问且仅访问一次107 B.图的遍历可以采用深度优先遍历和广度优先遍历108 C.图的广度优先遍历只适用于无向图 D.图的深度优先遍历是一个递归过程108 10.已知有向图G=(V,E),其中V={V1,V2,V3,V4},E={

经典数据结构面试题(含答案)

栈和队列的共同特点是__________________________ .栈通常采用的两种存储结构是______________________ .用链表表示线性表的优点是_______________________ 8.在单链表中,增加头结点的目的是___________________ 9.循环链表的主要优点是________________________- 12.线性表的顺序存储结构和线性表的链式存储结构分别是 __________________________ 13.树是结点的集合,它的根结点数目是_____________________ 14.在深度为5的满二叉树中,叶子结点的个数为_______________ 15.具有3个结点的二叉树有(_____________________ 16.设一棵二叉树中有3个叶子结点,有8个度为1的结点,则该二叉树中总的结点数为____________________ 17.已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是 ____________________________ 18.已知一棵二叉树前序遍历和中序遍历分别为ABDEGCFH和DBGEACHF,则该二叉树的后序遍历为______________________ 19.若某二叉树的前序遍历访问顺序是abdgcefh,中序遍历访问顺序是dgbaechf,则其后序遍历的结点访问顺序是_______________________ 20.数据库保护分为:安全性控制、完整性控制、并发性控制和数据的恢复。 在计算机中,算法是指_______________________ 算法一般都可以用哪几种控制结构组合而成_____________________ .算法的时间复杂度是指______________________ 5. 算法的空间复杂度是指__________________________ 6. 算法分析的目的是__________________________

数据结构试卷A

河南理工大学万方学院 2006-2007学年第 2 学期 《数据结构》试卷(A卷) 考试方式:闭卷本试卷考试分数占学生总评成绩的80 % 复查总分总复查人 一、单选题(本题的每一备选答案中, 只有一个是正确的,请把你认为正确的答案 的题号填入题干的括号内,每小题2分,共 30分) 1. 若长度为n的线性表采用顺序存储结构,在其第i个位置插入一个新元素的算法的时间复杂度为( )。(1≤i≤n+1) (1) O(0) (2) O(1) (3) O(n) (4) O(n2) 2.在单链表中p所指结点后插入s所指结点,则下列语句正确的是( ) (1) p→next=s; s→next=p; (2) s→next=p→next; p→next=s; (3) s→next=p; p→next=s; (4) p→next=s→next; s→next=p; 3. 设一个栈的输入序列为A,B,C,D,则借助一个栈所得到的输出序列不可能是( ) (1)A,B,C,D (2)D,C,B,A (3)A,C,D,B (4)D,A,B,C 4.若由树林转化得到的二叉树是非空的二叉树,则二叉树形状是() (1)根结点无右子树的二叉树(2)根结点无左子树的二叉树 (3)根结点可能有左二叉树和右二叉树(4)根结点只有一个孩子结点的二叉树 5.设二叉树的根为第一层,则深度为i的二叉树结点数最多为()

(1)2i(2)2i+1 (3)2i-1(4)2i -1 6. 首先访问结点的左子树,然后访问该结点,最后访问结点的右子树,这种遍历称为() (1)前序遍历(2)后序遍历(3)中序遍历(4)层次遍历 7.给定下列有向图,从顶点1出发,其广度优先搜索序列为() (1)12534 (2)12435 (3)14325 (4)12345 8.散列表中的冲突是指() (1)两个元素具有相同的序号(2)两个元素的关键字相同,而其他属性相同 (3)不同的关键字对应相同的存储地址(4)数据元素的地址相同 9. 线性表若采用链式存储结构时,要求内存中可用存储单元的地址:() (1)必须是连续的(2)部分地址必须是连续的 (3)一定是不连续的(4)连续或不连续都可以 10.下面程序段的时间复杂度为() for (int i=1;i

数据结构c语言版试题大全含答案

1 绪论沈阳理工大学应用技术学院信息与控制学院 计算机科学与技术教研室 2011-5-8

数据结构复习题:绪论 单选题 1、在数据结构中,与所使用的计算机无关的数据叫_____结构。 A存储|B物理|C逻辑|D物理和存储 2、在数据结构中,从逻辑上可以把数据结构分成______。 A动态结构和静态结构|B紧凑结构和非紧凑结构|C线性结构和非线性结构|D内部结构和外部结构图 3、数据结构在计算机内存中的表示是指_______。 数据的存储结构|数据结构|数据的逻辑结构|数据元素之间的关系 4、在数据结构中,与所使用的计算机无关的是数据的______结构。 逻辑|存储|逻辑和存储|物理 5、在以下的叙述中,正确的是_____。 线性表的线性存储结构优于链表存储结构|二维数组是其数据元素为线性表的线性表|栈的操作方式是先进先出|队列的操作方式是先进后出 6、在决定选取何种存储结构时,一般不考虑_______。 各结点的值如何|结束个数的多少|对数据有哪些运算|所用编程语言实现这种结构是否方便 7、在存储数据时,通常不仅要存储各数据元素的值,而且还要存储_______。 数据的处理方法|数据元素的类型|数据元素之间的关系|数据的存储方法 8、下面说法错误的是_______。 (1)算法原地工作的含义是指不需要任何额外的辅助空间 (2)在相同的规模n下,复杂度O(n)的算法在时间上总是优于复杂度O(2n)的算法 (3)所谓时间复杂度是指最坏情况下,估计算法执行时间的一个上界 (4)同一个算法,实现语句的级别越高,执行效率越低 (1)|(1)、(2)|(1)、(4)|(3) 9、通常要求同一逻辑结构中的所有数据元素具有相同的特性。这意味着______。 数据元素具有同一特点|不仅数据元素所包含的数据项的个数要相同,而且对应的数据项的类型要一致|每个数据元素都一样|数据元素所包含的数据项的个数要相等 10、以下说法正确的是_______。 数据元素是数据的最小单位|数据项是数据的基本单位|数据结构是带结构的数据项的集合|一些表面上很不相同的数据可以有相同的逻辑结构 11、____是数据的最小单元,_____是数据的基本单位. 数据项|数据元素|信息项|表元素 12、数据结构是指_____以及它们之间的_____. (1)数据元素(2)结构|(1)计算方法(2)关系|(1)逻辑存储(2)运算|(1)数据映像(2)算法 13、计算机所处理的数据一般具备某种内在的关系,这是的指_____. 数据和数据之间存在的某种关系|元素和元素之间存在某种关系|元素内部具有某种结构|数据项和数据项之间存在某种关系 14、数据的逻辑结构可以分为_____两类. 动态结构和表态结构|紧凑结构和非紧凑结构|线性结构和非线性结构|内部结构和外部结构 15、数据的逻辑结构是指_____关系的整体. 数据元素之间逻辑|数据项之间逻辑|数据类型之间|存储结构之间 16、在存储数据时,通常不仅要存储各数据元素的值,而且还要存储_____. 数据的处理方法|数据元素的类型|数据元素之间的关系|数据的存储方法

清华大学数据结构试题及答案

一、单选题(每题 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的单链存储的线性表,在表头插入元素的时间复杂度为_________,在表尾插 入元素的时间复杂度为____________。 5. 5.设W为一个二维数组,其每个数据元素占用4个字节,行下标i从0到7 ,列下标j从0到3 , 则二维数组W的数据元素共占用_______个字节。W中第6 行的元素和第4 列的元素共占用_________个字节。若按行顺序存放二维数组W,其起始地址为100,则二维数组元素W[6,3]的起始地址为__________。 6. 6.广义表A= (a,(a,b),((a,b),c)),则它的深度为____________,它的长度为____________。 7.7.二叉树是指度为2的____________________树。一棵结点数为N的二叉树,其所有结点的度的 总和是_____________。 8.8.对一棵二叉搜索树进行中序遍历时,得到的结点序列是一个______________。对一棵由算术表 达式组成的二叉语法树进行后序遍历得到的结点序列是该算术表达式的__________________。

数据结构模拟卷(含答案)经典习题培训讲学

数据结构模拟卷(含答案)经典习题

练习题 一、单项选择题 1. 若将数据结构形式定义为二元组(K,R),其中K是数据元素的有限集合,则R是K上( ) A. 操作的有限集合 B. 映象的有限集合 C. 类型的有限集合 D. 关系的有限集合 2. 在长度为n的顺序表中删除第i个元素(1≤i≤n)时,元素移动的次数为( ) A. n-i+1 B. i C. i+1 D. n-i 3. 若不带头结点的单链表的指针为head,则该链表为空的判定条件是( ) A. head==NULL B. head->next==NULL C. head!=NULL D. head->next==head 4. 引起循环队列队头位置发生变化的操作是( ) A. 出队 B. 入队 C. 取队头元素 D. 取队尾元素 5. 若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,则不.可能出现的出栈序列是( ) A. 2,4,3,1,5,6 B. 3,2,4,1,6,5 C. 4,3,2,1,5,6 D. 2,3,5,1,6,4

6. 字符串通常采用的两种存储方式是( ) A. 散列存储和索引存储 B. 索引存储和链式存储 C. 顺序存储和链式存储 D. 散列存储和顺序存储 7. 数据结构是() A.一种数据类型 B.数据的存储结构 C.一组性质相同的数据元素的集合 D.相互之间存在一种或多种特定关系的数据元素的集合 8. 算法分析的目的是() A.辨别数据结构的合理性 B.评价算法的效率 C.研究算法中输入与输出的关系 D.鉴别算法的可读性 9. 在线性表的下列运算中,不.改变数据元素之间结构关系的运算是 () A.插入B.删除 C.排序D.定位10. 下列图示的顺序存储结构表示的二叉树是( )

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. 下面程序段的执行次数为( A ) for(i=0;i<n-1;i++) for(j=n;j>i;j--) state; A. n(n+2)2 B .(n-1)(n+2)2 C. n(n+1)2 D. (n-1)(n+2) 2. 一个向量第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是 ( B )A. 110 B .108 C. 100 D. 120 3. 一个栈的入栈序列是a,b,c,d,e,则栈的不可能的输出序列是( C )A. edcba B .decba C. dceab D. abcde 4. 循环队列用数组A[0,m-1]存放其元素值,已知其头尾指针分别是front和rear,则当前 队列中的元素个数是( D ) A. (rear-front+m)%m B .read-front+1C. read-front-1 D. read-front 5.不带头结点的单链表head为空的判定条件是( A )A. head=NULL B .head-next=NULLC. head-next=head D. head!=NULL 6.在一个单链表中,若p所指的结点不是最后结点,在p之后插入s所指结点,则执行( B) A. s-next=p;p-next=s; B .s-next=p-next;p-next=s; C. s-next=p-next;p=s; D. p-next=s;s-next=p; 7. 从一个具有n个结点的单链表中查找其值等于x结点时,在查找成功的情况下,需平均 比较多少个结点( D )A. n B .n2 C. (n-1)2 D. (n+1)28.从一个栈顶指针为HS 的链栈中删除一个结点时,用x保存被删结点的值,则执行( D )A. x=HS;HS=HS-next;B .x=HS-data;C. HS=HS-next;x=HS-data;D. x=HS-data;HS=HS-next; 9.串是一种特殊的线性表,其特殊性体现在( B ) A. 可以顺序存储 B .数据元素是一个字符C. 可以链接存储 D. 数据元素可以是多个字 符11.二维数组M的元素是4个字符(每个字符占一个存储单元)组成的串,行下标i的 范围从0到4,列下标j的范围从0到5,M按行存储时元素M[3][5]的起始地址与M按列存 储时下列哪一元素的起始地址相同( B ) A. M[2][4] B .M[3][4] C. M[3][5] D. M[4][4] 12. 数组A中,每个元素A的长度为3个字节,行下标i从1到8,列下标j从1到10, 从首地址SA开始连续存放在存储器内,该数组按行存放时,元素A[8][5]的起始地址为 ( C )A. SA+144 B .SA+180 C. SA+222 D. SA+225

数据结构模拟卷(含答案)经典习题

练习题 一、单项选择题 1. 若将数据结构形式定义为二元组(K,R),其中K是数据元素的有限集合,则R是K上( ) A. 操作的有限集合 B. 映象的有限集合 C. 类型的有限集合 D. 关系的有限集合 2. 在长度为n的顺序表中删除第i个元素(1≤i≤n)时,元素移动的次数为( ) A. n-i+1 B. i C. i+1 D. n-i 3. 若不带头结点的单链表的指针为head,则该链表为空的判定条件是( ) A. head==NULL B. head->next==NULL C. head!=NULL D. head->next==head 4. 引起循环队列队头位置发生变化的操作是( ) A. 出队 B. 入队 C. 取队头元素 D. 取队尾元素 5. 若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,则不.可能出现的出栈序列是( ) A. 2,4,3,1,5,6 B. 3,2,4,1,6,5 C. 4,3,2,1,5,6 D. 2,3,5,1,6,4 1

6. 字符串通常采用的两种存储方式是( ) A. 散列存储和索引存储 B. 索引存储和链式存储 C. 顺序存储和链式存储 D. 散列存储和顺序存储 7. 数据结构是() A.一种数据类型 B.数据的存储结构 C.一组性质相同的数据元素的集合 D.相互之间存在一种或多种特定关系的数据元素的集合 8. 算法分析的目的是() A.辨别数据结构的合理性 B.评价算法的效率 C.研究算法中输入与输出的关系 D.鉴别算法的可读性 9. 在线性表的下列运算中,不.改变数据元素之间结构关系的运算是 () A.插入B.删除 C.排序D.定位 10. 下列图示的顺序存储结构表示的二叉树是( ) 2

数据结构A卷试题及答案

《数据结构》试卷 选择题(从下列答案选项中选出一个正确答案,每小题2分,共22分) 1.在数据结构中,与所使用的计算机无关的是数据的()结构。 A.逻辑 B.存储 C.逻辑和存储 D.物理 2.若线性表最常用的操作是存取第i个元素及其前驱的值,则采用()存 储方式节省时间。 A.单链表 B.双链表 C.顺序表 D.单循环链表 3.已知模式串t=“abcaabbcabcaabdab”,该模式串的next数组值为()。 A.-1,0,0,0,1,1,2,3,0,1,2,3,4,5,6,0,1 B.-1,0,0,0,1,1,2,0,0,1,2,3,4,5,6,0,1 C.-1,1,0,0,1,1,2,0,0,1,2,3,4,5,6,0,1 D.-1,0,0,0,1,1,2,0,0,1,2,3,4,5,6,7,1, 4.设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,a11为第一个 元素,其存储地址为1,每个元素占1个地址空间,则a85的地址为()。 A.13 B.33 C.18 D.40 5.一棵含有101个结点的完全二叉树存储在数组bt[102]中,其中bt[0]不用,若bt[k] 是叶子结点,则k的最小值是()。 A.51 B.50 C.49 D.48 6.稀疏矩阵一般的压缩存储方法有两种,即()。 A.二维数组和三维数组 B.三元组表和散列表 C.三元组表和十字链表 D.散列表和十字链表 7.对顺序存储的18个数据元素(A[1]~A[18])的有序表做二分查找,则查找A[3]的 比较序列的下标为( )。 A.1,2,3 B.9,5,2,3

C.9,5,3 D.9,4,2,3 8.用邻接矩阵存储一个图时,在不考虑压缩存储的情况下,所占用的存储空间大小与 图中的结点的个数有关,而与图的边数无关,这种说法()。 A.正确 B.错误 9.下列排序算法中,某一趟排序结束后未必能选出一个元素放在最终位置上的是( )。 A.堆排序 B.冒泡排序 C.直接插入排序 D.快速排序 10.在平衡二叉树中插入一个结点后造成了不平衡,设最小不平衡子树之根为A,并已 知A的左孩子的平衡因子为-1,右孩子的平衡因子为0,则应作()型 调整使其平衡。 A.LL B.LR C.RL D.RR 11.在解决计算机与打印机之间速度不匹配问题时通常设置一个打印数据缓冲区,主机 将要输出的数据依次写入该缓冲区,而打印机依此从该缓冲区中取出数据打印,该 缓冲区应是一个()结构。 A.堆栈 B.队列 C.顺序表 D.链表 二、填空题(每空2分,共18分) 1.以下程序段的时间复杂度是________________________,其中n为正整数。 int i=1; while(i<=n) i=i*2; 2.对顺序存储结构的线性表,设表长为n;在等概率假设条件下,插入一个数据元素 需平均移动表中元素______________个;在最坏情况下需移动表中元素 ______________个。 3.设树T的度为4,其中度为1、2、3、4的结点的个数分别为4、3、2、1,则树T 的叶子结点的个数是。 4.判定一个环形队列qu(最多元素为MaxSize)为空的条件是 __________________________________________,判定环形队列qu为满队列的条

数据结构习题及答案-第11章 文件

第十一章文件 一、选择题 1. 散列文件使用散列函数将记录的关键字值计算转化为记录的存放地址,因为散列函数是一对一的关系,则选择好的()方法是散列文件的关键。【哈尔滨工业大学 2001二、5 (2分)】 A. 散列函数 B. 除余法中的质数 C. 冲突处理 D. 散列函数和冲突处理 2. 顺序文件采用顺序结构实现文件的存储,对大型的顺序文件的少量修改,要求重新复制整个文件,代价很高,采用()的方法可降低所需的代价。【北京邮电大学 2000 二、 8 (20/8分)】 A. 附加文件 B. 按关键字大小排序 C. 按记录输入先后排序 D. 连续排序 3. 用ISAM组织文件适合于()。【中科院软件所 1998】 A.磁带 B.磁盘 4.下述文件中适合于磁带存储的是()。【中科院计算所 2000 一、7(2分)】 A. 顺序文件 B. 索引文件 C. 散列文件 D. 多关键字文件 5. 用ISAM和VSAM组织文件属于()。 A. 顺序文件 B. 索引文件 C. 散列文件 【中国科技大学 1998 二、5(2分)中科院计算所 1998 二、5(2分)】 6. ISAM文件和VASM文件属于()。【山东大学 2001 二、5 (1分)】 A. 索引非顺序文件 B. 索引顺序文件 C. 顺序文件 D. 散列文件 7. B+树应用在()文件系统中。【北京邮电大学 2001 一、1(2分)】 A. ISAM B. VSAM 二、判断题 1. 文件是记录的集合,每个记录由一个或多个数据项组成,因而一个文件可看作由多个记录组成的数据结构。【长沙铁道学院 1998 一、5 (1分)】 2. 倒排文件是对次关键字建立索引。【南京航空航天大学 1997 一、10(1分)】 3. 倒排序文件的优点是维护简单。【南京航空航天大学 1995 五、10(1分)】 4. 倒排文件与多重表文件的次关键字索引结构是不同的。【西安交通大学 1996 二、6 (3分)】 5. Hash表与Hash文件的唯一区别是Hash文件引入了‘桶’的概念。【南京航空航天大学1996六10(1分)】 6. 文件系统采用索引结构是为了节省存储空间。【北京邮电大学 2000 一、10 (1分)】 7. 对处理大量数据的外存介质而言,索引顺序存取方法是一种方便的文件组织方法。 【东南大学 2001 一、1-10 (1分)】 8. 对磁带机而言,ISAM是一种方便的稳健组织方法。【中科院软件所 1997 一、10(1分)】 9. 直接访问文件也能顺序访问,只是一般效率不高。【北京邮电大学 2002 一、10(1分)】 10. 存放在磁盘,磁带上的文件,即可以是顺序文件,也可以是索引结构或其他结构类型的文件。 【山东大学 2001 一、7 (1分)】 11. 检索出文件中的关键码值落在某个连续的范围内的全部记录,这种操作称为范围检索。对经常需要做范围检索的文件进行组织,采用散列法优于顺序检索法。【中山大学 1994 一、

武汉大学数据结构考试试题(附答案) (2)

1. 下面程序段的执行次数为(A ) for(i=0;i<n-1;i++) for(j=n;j>i;j--) state; A. n(n+2)2 B .(n-1)(n+2)2 C. n(n+1)2 D. (n-1)(n+2) 2. 一个向量第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是( B ) A. 110 B .108 C. 100 D. 120 3. 一个栈的入栈序列是a,b,c,d,e,则栈的不可能的输出序列是( C )A. edcba B .decba C. dceab D. abcde 4. 循环队列用数组A[0,m-1]存放其元素值,已知其头尾指针分别是front和rear,则当前队列中的元素个数是( D ) A. (rear-front+m)%m B .read-front+1C. read-front-1 D. read-front 5.不带头结点的单链表head为空的判定条件是( A )A. head=NULL B .head-next=NULLC. head-next=head D. head!=NULL 6.在一个单链表中,若p所指的结点不是最后结点,在p之后插入s所指结点,则执行(B) A. s-next=p;p-next=s; B .s-next=p-next;p-next=s; C. s-next=p-next;p=s; D. p-next=s;s-next=p; 7. 从一个具有n个结点的单链表中查找其值等于x结点时,在查找成功的情况下,需平均比较多少个结点( D )A. n B .n2 C. (n-1)2 D. (n+1)28.从一个栈顶指针为HS的链栈中删除一个结点时,用x保存被删结点的值,则执行( D )A. x=HS;HS=HS-next;B .x=HS-data;C. HS=HS-next;x=HS-data;D. x=HS-data;HS=HS-next; 9.串是一种特殊的线性表,其特殊性体现在( B ) A. 可以顺序存储 B .数据元素是一个字符C. 可以链接存储 D. 数据元素可以是多个字符11.二维数组M的元素是4个字符(每个字符占一个存储单元)组成的串,行下标i的范围从0到4,列下标j的范围从0到5,M按行存储时元素M[3][5]的起始地址与M按列存储时下列哪一元素的起始地址相同( B ) A. M[2][4] B .M[3][4] C. M[3][5] D. M[4][4] 12. 数组A中,每个元素A的长度为3个字节,行下标i从1到8,列下标j从1到10,从首地址SA开始连续存放在存储器内,该数组按行存放时,元素A[8][5]的起始地址为( C )A. SA+144 B .SA+180 C. SA+222 D. SA+225 13. 设高度为h的二叉树上只有度为0和度为2的结点,则此类二叉树中所包含的结点数至少为:( B )A. 2h B .2h-1 C. 2h+1 D. h+1 14. 已知某二叉树的后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是 ( D )A. acbed B .decab C. deabc D. cedba 15. 树的基本遍历策略可分为先根遍历和后根遍历;二叉树的基本遍历策略可分为先序遍历、中序遍历和后序遍历。这里,我们把由树转化得到的二叉树叫做这棵树对应的二叉树。下列结论哪个正确( A )A. 树的先根遍历序列与其对应的二叉树的先序遍历序列相同 B .树的后根遍历序列与其对应的二叉树的后序遍历序列相同C. 树的先根遍历序列与其对应的 二叉树的中序遍历序列相同 D. 以上都不对16. 具有6个顶点的无向图至少应有多少条边才能确保是一个连通图 ( A )A. 5 B .6 C. 7 D. 8 17. 顺序查找法适合于存储结构为( B )的线性表 A. 散列存储B .顺序存储或链接存储C. 压缩存储 D. 索引存储 18.采用顺序查找方法查找长度为n的线性表每个元素的平均查找长度为( C )A. n B .n2 C. (n+1)2 D. (n-1)2

经典数据结构上机题_答案解析

数据结构上机实验题目 实验一线性表的顺序存储结构 实验学时 2学时 背景知识:顺序表的插入、删除及应用。 目的要求: 1.掌握顺序存储结构的特点。 2.掌握顺序存储结构的常见算法。 实验容 1.输入一组整型元素序列,建立顺序表。 2.实现该顺序表的遍历。 3.在该顺序表中进行顺序查找某一元素,查找成功返回1,否则返回0。4.判断该顺序表中元素是否对称,对称返回1,否则返回0。 5.实现把该表中所有奇数排在偶数之前,即表的前面为奇数,后面为偶数。 6.输入整型元素序列利用有序表插入算法建立一个有序表。 7.利用算法6建立两个非递减有序表并把它们合并成一个非递减有序表。 8. 利用该顺序结构实现循环队列的入队、出队操作。 8.编写一个主函数,调试上述算法。 #include #include

#define OVERFLOW 0 #define MAXSIZE 100 typedef int ElemType; typedef struct list {ElemType elem[MAXSIZE]; int length; }Sqlist; void Creatlist(Sqlist &L) {int i; printf("请输入顺序表的长度:"); //输入一组整型元素序列,建立一个顺序表。 scanf("%d",&L.length); for(i=0;i

数据结构试卷-A+答案

北京师范大学2011~2012学年第 1 学期期末考试试卷(A 卷) 课程名称: 数据结构 任课教师姓名: 刘玉铭 卷面总分: 100 分 考试时长: 100 分钟 考试类别:闭卷 院(系): 数学科学学院 专 业: 年级: 2010 姓 名: 学 号: 阅卷教师(签字): 一、 单项选择题(每题2分,共10题20分) 1.以下那一个术语与数据的存储结构无关? 。 A .栈 B .哈希表 C .线索树 D .双向链表 2.链表不具有的特点是 。 A .插入、删除不需要移动元素 B .可随机访问任一元素 C .不必事先估计存储空间 D .所需空间与线性表长度成正比 3.算术表达式a+b*(c+d/e )转为后缀表达式后为 。 A .ab+cde/* B .abcde/+*+ C .abcde/*++ D .abcde*/++ 4.二维数组A[10][20]采用列优先的存储方法,若每个元素占2个存储单元,设A[0][0]的地址为100,则元素A[7][6]的存储地址为 。 A .232 B .234 C .390 D .392 装 订 线

5.若一棵二叉树具有10 个度为2 的结点,5 个度为1 的结点,则度为0 的结点个数是。 A.9 B.11 C.15 D.不确定 6.一棵二叉树中序序列为FEABDC,后序序列为FBADCE,则层序序列为。 A. ABCDEF B. EFCDBA C. FECDAB D. EFCDAB 7.在有向图G 的拓扑序列中,若顶点Vi 在顶点Vj 之前,则下列情形不可能出现的是。 A.G 中有弧 B.G 中有一条从Vi 到Vj 的路径C.G 中没有弧 D.G 中有一条从Vj 到Vi 的路径 8.对于二叉排序树,下面的说法是正确的。 A.二叉排序树是动态树表,查找不成功时插入新结点时,会引起树的重新分裂和组合 B.对二叉排序树进行层序遍历可得到有序序列 C.用逐点插入法构造二叉排序树时,若先后插入的关键字有序,二叉排序树的深度最大 D.在二叉排序树中进行查找,关键字的比较次数不超过结点数的1/2 9.一组记录的关键字为{47、75、55、30、42、90},则用快速排序方法并以第一个记录为支点得到的第一次划分结果是。 A. 30,42,47,55,75,90 B. 42,30,47,75,55,90 C. 42,30,47,55,75,90 D. 42,30,47,90,55,75 10.下述文件中适合于磁带存储的是。 A. 顺序文件 B. 索引文件 C. 散列文件 D. 多关键字文件 二、判断(每题1分,共10题10分) 1.顺序存储方式插入和删除时效率太低,因此它不如链式存储方式好。----( ) 2.KMP 算法的特点是在模式匹配时指示主串的指针不会变小。------------( )

数据结构经典题目c语言代码

《数据结构》课程设计题目 (程序实现采用C语言) 题目1:猴子选王(学时:3) 一堆猴子都有编号,编号是1,2,3 ...m,这群猴子(m个)按照1-m的顺序围坐一圈,从第1开始数,每数到第n个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王。 要求:m及n要求从键盘输入,存储方式采用向量及链表两种方式实现该问题求解。 //链表 #include #include // 链表节点 typedef struct _RingNode { int pos; struct _RingNode *next; }RingNode, *RingNodePtr; // 创建约瑟夫环,pHead:链表头指针,count:链表元素个数 void CreateRing(RingNodePtr pHead, int count) { RingNodePtr pCurr = NULL, pPrev = NULL; int i = 1; pPrev = pHead; while(--count > 0)

{ pCurr = (RingNodePtr)malloc(sizeof(RingNode)); i++; pCurr->pos = i; pPrev->next = pCurr; pPrev = pCurr; } pCurr->next = pHead; // 构成环状链表 } void KickFromRing(RingNodePtr pHead, int n) { RingNodePtr pCurr, pPrev; int i = 1; // 计数 pCurr = pPrev = pHead; while(pCurr != NULL) { if (i == n) { // 踢出环 printf("\n%d", pCurr->pos); // 显示出圈循序 pPrev->next = pCurr->next; free(pCurr); pCurr = pPrev->next; i = 1; } pPrev = pCurr;

数据结构试卷A卷

读书破万卷下笔如有神 《数据结构》试卷(A卷) 一、选择题 1. 数据结构是指()。 A.数据元素的组织形式 B.数据类型 C.数据存储结构 D.数据定义 2. 数据在计算机存储器内表示时,物理地址与逻辑地址不相同的,称之为()。 A.存储结构 B.逻辑结构 D.顺序存储结构 C. 链式存储结构 3. 树形结构是数据元素之间存在一种()。 A.一对一关系 B.多对多关系 D. 一对多关系 C.多对一关系 4. 设语句x++的时间是单位时间,则以下语句的时间复杂度为()。 for(i=1; i<=n; i++) for(j=i; j<=n; j++) x++; 23nn) D.O(C.O(n) B.O( ) A.O(1) 5. 算法分析的目的是(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. 数据在计算机内有链式和顺序两种存储方式,在存储空间使用的灵活性上,链式存储比顺序存储要()。 不好说D. 相同C. 高B. 低A. 读书破万卷下笔如有神 8. 数据结构作为一门独立的课程出现是在()年。 A.1946 B.1953 C.1964 D.1968 9. 数据结构只是研究数据的逻辑结构和物理结构,这种观点()。 A.正确 B.错误 C.前半句对,后半句错 D.前半句错,后半句对 10. 计算机内部数据处理的基本单位是()。 A.数据 B.数据元素 C.数据项 D.数据库 11.若查找每个元素的概率相等,则在长度为n的顺序表上查找任一元素的平均查找长度为( )。

相关文档
最新文档