当前位置:文档之家› 数据结构单元8练习参考答案汇编

数据结构单元8练习参考答案汇编

数据结构单元8练习参考答案汇编
数据结构单元8练习参考答案汇编

单元练习8

一.判断题(下列各题,正确的请在前面的括号内打√;错误的打╳)

(√)(1)图可以没有边,但不能没有顶点。

(ㄨ)(2)在无向图中,(V1,V2)与(V2,V1)是两条不同的边。

(ㄨ)(3)邻接表只能用于有向图的存储。

(√)(4)一个图的邻接矩阵表示是唯一的。

(ㄨ)(5)用邻接矩阵法存储一个图时,所占用的存储空间大小与图中顶点个数无关,而只与图的边数有关。

(ㄨ)(6)有向图不能进行广度优先遍历。

(√)(7)若一个无向图的以顶点V1为起点进行深度优先遍历,所得的遍历序列唯一,则可以唯一确定该图。

(√)(8)存储无向图的邻接矩阵是对称的,因此只要存储邻接矩阵的上三角(或下三角)部分就可以了。

(ㄨ)(9)用邻接表法存储图时,占用的存储空间大小只与图中的边数有关,而与结点的个数无关。(√)(10)若一个无向图中任一顶点出发,进行一次深度优先遍历,就可以访问图中所有的顶点,则该图一定是连通的。

二.填空题

(1)图常用的存储方式有邻接矩阵和邻接表等。

(2)图的遍历有:深度优先搜和广度优先搜等方法。

(3)有n条边的无向图邻接矩阵中,1的个数是 _2n____。

(4)有向图的边也称为 _ 弧___ 。

(5)图的邻接矩阵表示法是表示 __顶点____之间相邻关系的矩阵。

(6)有向图G用邻接矩阵存储,其第i行的所有元素之和等于顶点i的 __出度____。

(7)n个顶点e条边的图若采用邻接矩阵存储,则空间复杂度为:O(n2)。

(8)n个顶点e条边的图若采用邻接表存储,则空间复杂度为:O(n+e)。

(9)设有一稀疏图G,则G采用 _邻接表____存储比较节省空间。

(10)设有一稠密图G,则G采用 _邻接矩阵____存储比较节省空间。

(11)图的逆邻接表存储结构只适用于 __有向____图。

(12) n个顶点的完全无向图有 n(n-1)/2_ 条边。

(13)有向图的邻接表表示适于求顶点的出度。

(14)有向图的邻接矩阵表示中,第i列上非0元素的个数为顶点V i的入度。

(15)对于具有n个顶点的图,其生成树有且仅有n-1 条边。

(16)对n个顶点,e条弧的有向图,其邻接表表示中,需要n+e 个结点。

(17)从图中某一顶点出发,访遍图中其余顶点,且使每一顶点仅被访问一次,称这一过程为图的遍历。

(18)无向图的邻接矩阵一定是对称矩阵。

(19)一个连通网的最小生成树是该图所有生成树中权最小的生成树。

(20)若要求一个稠密图G的最小生成树,最好用Prim 算法来求解。

三.选择题

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

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

(2)在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的( B )倍。

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

(3)对于一个具有n个顶点的有向图的边数最多有( B )。

A.n B.n(n-1) C.n(n-1)/2 D.2n

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

A.n B.n+1 C. n-1 D.n/2

(5)有8个结点的有向完全图有( C )条边。

A.14 B. 28 C. 56 D. 112

(6)深度优先遍历类似于二叉树的( A )。

A.先序遍历 B.中序遍历 C.后序遍历 D.层次遍历

(7)广度优先遍历类似于二叉树的( D )。

A.先序遍历 B.中序遍历 C.后序遍历 D.层次遍历

(8)任何一个无向连通图的最小生成树( A )。

A.只有一棵 B.一棵或多棵 C.一定有多棵 D.可能不存在

(9)无向图顶点v的度是关联于该顶点( B )的数目。

A.顶点 B.边 C.序号 D.下标

(10)有n个顶点的无向图的邻接矩阵是用( B )数组存储。

A.一维B.n行n列C.任意行n列 D.n行任意列

(11)对于一个具有n个顶点和e条边的无向图,采用邻接表表示,则表头向量大小为( C )。 A.n-1 B.n+1 C.n D.n+e

(12)在图的表示法中,表示形式唯一的是( A )。

A.邻接矩阵表示法 B.邻接表表示法

C.逆邻接表表示法 D.邻接表和逆邻接表表示法

(13)在一个具有n个顶点e条边的图中,所有顶点的度数之和等于( C )。

A.n B.e C. 2n D.2e

(14)下列图中,度为3的结点是( B )。

A .V 1 B. V 2 C. V 3 D. V 4 (15)下列图是( A )。

A .连通图 B. 强连通图 C. 生成树 D. 无环图

(16)如下图所示,从顶点a 出发,按深度优先进行遍历,则可能得到的一种顶点序列为( D )。

A . a ,b ,e ,c ,d ,f

B . a ,c ,f ,e ,b ,d C. a ,e ,b ,c ,f ,d D. a ,e ,d ,f ,c ,b

(17)如下图所示,从顶点a 出发,按广度优先进行遍历,则可能得到的一种顶点序列为( A )。

A. a ,b ,e ,c ,d ,f

B. a ,b ,e ,c ,f ,d

C. a ,e ,b ,c ,f ,d

D. a ,e ,d ,f ,c ,b

(18)最小生成树的构造可使用( A )算法。 A .prim 算法

B .卡尔算法

C .哈夫曼算法

D .迪杰斯特拉算法

(19)下面关于图的存储结构的叙述中正确的是( A )。

A . 用邻接矩阵存储图,占用空间大小只与图中顶点数有关,而与边数无关

B . 用邻接矩阵存储图,占用空间大小只与图中边数有关,而与顶点数无关

C . 用邻接表存储图,占用空间大小只与图中顶点数有关,而与边数无关

D . 用邻接表存储图,占用空间大小只与图中边数有关,而与顶点数无关 (20)连通分量是( C )的极大连通子图。 A .树

B .图

C .无向图

D .有向图

四.应用题(30分)

1.有向图如下图所示,画出邻接矩阵和邻接表

解:

(1)邻接矩阵 1 2 3 4 5

???

???

?

?

??010000000110000010001011054321

2. 已知一个无向图有6个结点,9条边,这9条边依次为(0,1),(0,2),(0,4),(0,5),(1,2),(2,3),(2,4),(3,4),(4,5)。试画出该无向图,并从顶点0出发,分别写出按深度优先搜索和按广度优先搜索进行遍历的结点序列。(5分) 解:

从顶点0出发的深度优先搜索遍历的结点序列:0 1 2 3 4 5(答案不唯一) 从顶点0出发的广度优先搜索遍历的结点序列:0 1 2 4 5 3(答案不唯一)

3. 已知一个无向图的顶点集为:{a ,b ,c ,d ,e},其邻接矩阵如下,画出草图,写出顶点a 出①

②③

④⑤

发按深度优先搜索进行遍历的结点序列。(5分)

解:

(1)

(2)深度优先搜索:

a b d c e (答案不唯一)

广度优先搜索:

a b e d c (答案不唯一)

4.网G 的邻接矩阵如下,试画出该图,并画出它的一棵最小生成树。

解:

5. 已知某图G 的邻接矩阵如图,

(1)画出相应的图; (2)要使此图为完全图需要增加几条边。

解: (1)

(2) 完全无向图应具有的边数为:n*(n-1)1/2=4*(4-1)/2=6,所以还要增加2条边(如右图)。

???

?

???

?

????????0110110110110000100110010???

?

?

?

??????0101101001011010????????????????0701307040110403101303080111080

6.已知如图所示的有向图,请给出该图的:

(1) 每个顶点的入/出度; (2) 邻接表; (3) 邻接矩阵。

解:

(1) (2)

(3)

7.如图,请完成以下操作:

(2) 写出无向带权图的邻接矩阵; (3) 设起点为a ,求其最小生成树。

解:

(1)邻接矩阵为: (2)起点为a ,可以直接由原

始图画出最小生成树

??????????????????∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞064560252036307945670555505395504340

8.给定下列网G:

(1) 画出网G 的邻接矩阵;

(2) 画出网G 的最小生成树。 解:

(1)邻接矩阵 (2)最小生成树

??????????

????????????∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞1012696841015121520982012412

五.程序题填空题

图G 为有向无权图,试在邻接矩阵存储结构上实现删除一条边(v,w)的操作:DeleteArc(G,v,w)。若无顶点v 或w ,返回“ERROR ”;若成功删除,则边数减1,并返回“OK ”。 (提示:删除一条边的操作,可以将邻接矩阵的第i 行全部置0 ) 解:

Status DeleteArc(MGraph &G,char v,char w) //在邻接矩阵表示的图G 上删除边(v,w) { if ((i=LocateVex(G,v))<0) return ERROR ; if ((j=LocateVex(G,w))<0) return ERROR ; if (G.arcs[i][j].adj) { G.arcs[i][j].adj= 0 ;

G.arcnum -- ; (或 G.arcnum=G.arcnum-1 ) }

return OK ; }

六.算法题

1. 编写一个无向图的邻接矩阵转换成邻接表的算法。

2. 以知有n 个顶点的有向图邻接表,设计算法分别实现以下功能: (1)求出图G 中每个顶点的出度、入度。

(2)求出G 中出度最大的一个顶点,输出其顶点序号。

(3)计算图中度为0的顶点数。

1.解:本题思想是逐个扫描邻接矩阵的各个元素,若第i行第j列的元素为1,则相应的邻接表的第i个单链表上增加一个j结点。

void trans(int edges[n][n],Adjlist adj)

{ int i,j;

edgenode *p;

for (i=0;i

{ adj[i].data=i;

adj[i].link=NULL;

}

for (i=0;i

for (j=0;j

{ if(edges[i][j]==1)

{ p=(edgenode *) malloc (sizeof(edgenode));

p->adjvex=j;

p->next=adj[i].link;

adj[i].link=p;

}

}

}

2.

(1)求出度的思想:计算出邻接表中第i个单链表的结点数即可。

int outdegree(adjlist adj,int v)

{ int degree=0;

edgenode *p;

p=adj[v].link;

while (p!=NULL)

{ degree++;

p=p->next;

}

return degree;

}

void printout(adjlist adj,int n)

{ int i,degree;

printf("The Outdegree are:\n");

for(i=0;i

{ degree=outdegree(adj,i);

printf("(%d,%d)",i,degree);

}

}

求入度的思想:计算出邻接表中结点i的结点数即可。

int indegree(adjlist adj,int n,int v)

{ int i,j,degree=0;

edgenode *p;

for (i=0;i

{ p=adj[i].link;

while (p!=NULL)

{ if (p->adjvex==v)

degree++;

p=p->next;

}

}

return degree;

}

void printin(adjlist adj,int n)

{ int i,degree;

printf("The Indegree are:\n");

for (i=0;i

{ degree=Indegree(adj,n,i);

printf("(%d,%d)",i,degree);

}

}

(2)求最大度的算法

void maxoutdegree(adjlist adj,int n)

{ int maxdegree=0,maxv=0,degree,i;

for (i=0;i

{ degree=outdegree(adj,i);

if (degree>maxdegree)

{ maxdegree=degree;

maxv=i;

}

}

printf("maxoutdegree %d,maxvertex=%d",maxdegree,maxv);

}

(3)求度为0的顶点数的算法

int outzero(adjlist adj,int n)

{ int num=0,i;

for (i=0;i

{ if (outdegree(adj,i)==0)

num++;

}

return num;

}

模拟考题

1. 已知如图所示的有向图,请给出该图的:

(1) 每个顶点的入度和出度; (2) 逆邻接表。

解:

(1) (2)

2. 给定下列网G:

(1) 写出网G 以B 为顶点的广度优先遍历的序列; (2) 画出网G 的最小生成树。 解:(1)以B 为顶点的广度优先遍历的序列: (2)最小生成树 B A E F C G D

3. 无向图G 如图所示,(1)试画出邻接矩阵;(2)写出从A 出发的深度优先遍历的序列。

解:(1) 邻接矩阵 (2)从A 出发的深度优先遍历的序列: A B D C E G F (不唯一)

3. 已知图G 的邻接表如下,以顶点1为出发点,完成下列问题:

(1)写出以顶点1为出发点的广度优先遍历序列;

(2)画出以顶点1为出发点的深度优先搜索得到的一棵二叉树。 解:(1)广度优先遍历序列:1,2,5,4,3 (2)深度优先搜索得到的一棵二叉树:

5. 试填空完成深度优先搜索的递归函数。

#define MAXVEX 100 // 定义图的最大顶点数 struct vertex

{ int num; // 顶点编号 char data; // 顶点的信息 };

typedef struct graph

{ struct vertex vexs[MAXVEX]; // 顶点集合 int edges[MAXVEX][ MAXVEX]; // 边的集合 ??

?

???

?

??

?

????????????0110000100100010010000110110000100100010010000110

}sdjmax;

int visited[MAXVEX];

void dfs(adjlist adj,int v) // 深度优先搜索的递归函数

{ int i;

struct edgenode *p;

for (i=1;i<=n;i++)

visited[i]=0; // 给visited数组赋初值0

visited[v]=1;

cin v; // 取v的边的表头指针

p= adj[v]->link ;

while ( p!=NULL )

{ if (visited[p->adjvex]== 0 ) // 从v的未访问过的邻接点出发进行深度优先搜索 dfs(adjlist, p->adjvex );

p= p->next ; // 找v的下一个邻接点

}

}

数据结构单元练习4

单元测验4 一.判断题(下列各题,正确的请在前面的括号内打√;错误的打╳) (√)(1)队列是限制在两端进行操作的线性表。 (√)(2)判断顺序队列为空的标准是头指针和尾指针都指向同一个结点。 (×)(3)在链队列上做出队操作时,会改变front指针的值。(√)(4)在循环队列中,若尾指针rear大于头指针front,其元素个数为rear- front。 (×)(5)在单向循环链表中,若头指针为h,那么p所指结点为尾结点的条件是p=h。 (√)(6)链队列在一定范围内不会出现队满的情况。 (×)(7)在循环链队列中无溢出现象。 (×)(8)栈和队列都是顺序存储的线性结构。 (×)(9)在队列中允许删除的一端称为队尾。 (×)(10)顺序队和循环队关于队满和队空的判断条件是一样的。 二.填空题 (1)在队列中存取数据应遵循的原则是先进先出。(2)队列是被限定为只能在表的一端进行插入运算,在表的另一端进行删除运算的线性表。 (3)在队列中,允许插入的一端称为队尾。 (4)在队列中,允许删除的一端称为队首(或队头)。(5)队列在进行出队操作时,首先要判断队列是否为空。 (6)顺序队列在进行入队操作时,首先要判断队列是否为满。 (7)顺序队列初始化后,front=rear= -1 。 (8)解决顺序队列“假溢出”的方法是采用循环队列。(9)循环队列的队首指针为front,队尾指针为rear,则队空的条件为 front == rear 。

(10)链队列LQ为空时,LQ->front->next= NULL 。(11)设长度为n的链队列用单循环链表表示,若只设头指针,则入队操作的时间复杂度为 O(n)。 (12)设长度为n的链队列用单循环链表表示,若只设尾指针,则出队操作的时间复杂度为 0(1)。 (13)在一个链队列中,若队首指针与队尾指针的值相同,则表示该队列为空。 (14)设循环队列的头指针front指向队首元素,尾指针rear指向队尾元素后的一个空闲元素,队列的最大空间 为MAXLEN,则队满标志为: front==(rear+1)%MAXLEN 。 (15)在一个链队列中,若队首指针为front,队尾指针为rear,则判断该队列只有一个结点的条件为: front==rear && front !=NULL 。 ( 或front==rear && front <>NULL ) (16)向一个循环队列中插入元素时,首先要判断队尾指针,然后再向指针所指的位置写入新的数据。(17)读队首元素的操作不改变(或不影响)队列元素的个数。 (18)设循环队列的容量为40(序号从0到39),现经过一系列的入队和出队运算后,有 front=11,rear=19,则循环队列中还有 8 个元素。 (L= (N+rear-front)% N=(40+19-11)% 40=8)(19)队列Q,经过下列运算:InitQueue(Q)(初始化队列);InQueue(Q,a); InQueue(Q,b);OutQueue(Q,x); ReadFront(Q,x);QEmpty(Q);后的值是 0 。 (20)队列Q经过InitQueue(Q)(初始化队列);InQueue(Q,a);InQueue(Q,b); ReadFront(Q,x)后,x的值是 a 。 三.选择题 (1)队列是限定在( D )进行操作的线性表。

数据结构试题及答案10套

一、单选题(每题 2 分,共20分) 1. 1.对一个算法的评价,不包括如下(B )方面的内容。 A.健壮性和可读性B.并行性C。正确性D.时空复杂度 2.2.在带有头结点的单链表HL中,要向表头插入一个由指针p指向 的结点,则执行(A ). A. p-〉next=HL->next; HL-〉next=p; B. p-〉next=HL;HL=p; C。p->next=HL; p=HL;D. HL=p; p-〉next=HL; 3.3.对线性表,在下列哪种情况下应当采用链表表示?( B ) A.经常需要随机地存取元素 B。经常需要进行插入和删除操作 C。表中元素需要占据一片连续的存储空间D.表中元素的个数不变 4. 4.一个栈的输入序列为1 2 3,则下列序列中不可能是栈的输出序 列的是( C ) A. 2 3 1 ??? B. 3 2 1 C。 3 1 2 ??? D. 1 23 5. 5.AOV网是一种(D )。 A.有向图B.无向图C.无向无环图D.有向无环图 6.6。采用开放定址法处理散列表的冲突时,其平均查找长度(B)。 A.低于链接法处理冲突B.高于链接法处理冲突C.与链接法处理冲突相同 D。高于二分查找 7.7。若需要利用形参直接访问实参时,应将形参变量说明为(D ) 参数. A。值B。函数 C.指针 D。引用 8.8.在稀疏矩阵的带行指针向量的链接存储中,每个单链表中的结 点都具有相同的( A )。 A。行号 B.列号 C.元素值 D.非零元素个数 9.9.快速排序在最坏情况下的时间复杂度为( D )。 A。O(log 2n) B.O(nlog 2 n) C。0(n) D.0 (n2) 10.10.从二叉搜索树中查找一个元素时,其时间复杂度大致为( C ). A.O(n) B. O(1) C。 O(log 2 n) D. O(n2)二、运算题(每题 6 分,共24分)

严蔚敏版数据结构课后习题答案-完整版

第1章绪论 1.1 简述下列术语:数据,数据元素、数据对象、数据结构、存储结构、数据类型和抽象数据类型。 解:数据是对客观事物的符号表示。在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。 数据元素是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。 数据对象是性质相同的数据元素的集合,是数据的一个子集。 数据结构是相互之间存在一种或多种特定关系的数据元素的集合。 存储结构是数据结构在计算机中的表示。 数据类型是一个值的集合和定义在这个值集上的一组操作的总称。 抽象数据类型是指一个数学模型以及定义在该模型上的一组操作。是对一般数据类型的扩展。 1.2 试描述数据结构和抽象数据类型的概念与程序设计语言中数据类型概念的区别。 解:抽象数据类型包含一般数据类型的概念,但含义比一般数据类型更广、更抽象。一般数据类型由具体语言系统内部定义,直接提供给编程者定义用户数据,因此称它们为预定义数据类型。抽象数据

类型通常由编程者定义,包括定义它所使用的数据和在这些数据上所进行的操作。在定义抽象数据类型中的数据部分和操作部分时,要求只定义到数据的逻辑结构和操作说明,不考虑数据的存储结构和操作的具体实现,这样抽象层次更高,更能为其他用户提供良好的使用接口。 1.3 设有数据结构(D,R),其中 {}4,3,2,1d d d d D =,{}r R =,()()(){}4,3,3,2,2,1d d d d d d r = 试按图论中图的画法惯例画出其逻辑结构图。 解: 1.4 试仿照三元组的抽象数据类型分别写出抽象数据类型复数和有理数的定义(有理数是其分子、分母均为自然数且分母不为零的分数)。 解: ADT Complex{ 数据对象:D={r,i|r,i 为实数} 数据关系:R={} 基本操作: InitComplex(&C,re,im) 操作结果:构造一个复数C ,其实部和虚部分别为re 和im DestroyCmoplex(&C)

数据结构练习8

第八章查找 习题 9.1 判断题(在你认为正确的题后的括号中打√,否则打X)。 (1)用来惟一区分文件中不同记录的属性或属性组称为主关键字。( ) (2)查找成功与否的关键在于是否按主关键字查找。( ) (3)顺序文件必须用一片地址连续的存储空间来存放。( ) (4)只有在顺序存储结构上才能采用顺序查找方法。( ) (7)只要按值有序排列的线性表采用顺序存储结构就可以采用折半查找方法。( ) (8)建立稠密索引的优点是节省存储空间。( ) (9)分块查找的效率与文件中的记录被分成多少块有关。( ) (10)分块查找过程是首先查找索引表,然后再到相应的块中具体查找记录。( ) (11)B-树和B十树都是用来实现动态索引的。( ) (12)在B-树上可以进行顺序查找。( 1 (13)在B+树上可以进行顺序查找。/ 1 (14)采用散列方法存储线性表,不能存储数据元素之间的关系。( ) (15)在散列文件中进行查找不涉及关键字的比较。( ) (16)散列冲突是指同一个关键字对应了多个不同的散列地址。( ) (17)散列表的负载因子等于存人散列表中的关键字的个数。( ) (18)在散列表的查找过程中,关键字的比较次数与表中关键字的数目直接相关。( ) (19)在利用线性探测法处理冲突的散列表中,散列函数值相同的关键字总是存放在一片地址连续的存储单元中。 (20)在采用链地址法处理冲突的散列表中,散列函数值相同的关键字是链接在同一个链表中的。( ) 9.2单项选择题。 (1)衡量查找算法性能好坏的主要标准是。 A.参加比较的关键字值的多少 B.被查找的关键字值在关键字序列中的位置 C.关键字序列中是否存在被查找关键字值 D.关键字值的平均比较次数的多少 (2)顺序查找方法的优点之一是—。· A.对于被查找对象几乎没有限制B.适合排序连续顺序文件的查找 C.适合链接顺序文件的查找D.查找时间效率高 (3)对线性表采用折半查找,该线性表必须。 A.元素按值有序排列B.采用顺序结构 C.元素按值有序排列,并且采用顺序存储结构 n元素按值有序排列,并且采用链式存储结构 (4)下面的说法中,不正确的是——。 A.折半查找方法不适用于按值有序链接的链表的查找 B.折半查找方法适用于按值有序的顺序表的查找 C.折半查找方法适用于按关键字值大小有序排列的顺序文件的查找 D.折半查找方法适用于排序连续顺序文件的查找 (5)在有序表(k1,k2,…,k9,)中采用折半查找方法查找99次,其中,至少有一个元素被比较了99次,该元素是——。

数据结构试卷带答案

数据结构试卷(一) 一、选择题(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

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

《数据结构》期末考试试题及答案 (2003-2004学年第2学期) 单项选择题1、C 2、D 3、A 4、D 5、C 6、D 7、A 8、B 9、C 10、C 、 1. 对于一个算法,当输入非法数据时,也要能作出相应的处理,这种要求称为 (c )。 (A)、正确性但).可行性(C).健壮性 2 ?设S为C语言的语句,计算机执行下面算法时, for(i=n-1 ; i>=0; i--) for(j=0 ; jvi; j++) (A)、n2(B). O(nlgn) 3?折半查找法适用于( a (D). 输入性 算法的时间复杂度为(d S; (C). O(n) (D). )。 O(n2) (A)、有序顺序表(B)、有序单链表 (C)、有序顺序表和有序单链表都可以 4 .顺序存储结构的优势是( d )。 (A)、利于插入操作(B)、利于删除操作 (C)、利于顺序访问(D)、利于随机访问 5. 深度为k的完全二叉树,其叶子结点必在第 (A)、k-1 ( B)、k (C)、k-1 和 6. 具有60个结点的二叉树,其叶子结点有 (A)、11 ( B)、13 ( C)、48 (D)、无限制 c )层上。 (D)、1 至 k 12个,则度过1 (D)、37 k 的结点数为( 7 .图的Depth-First Search(DFS) 遍历思想实际上是二叉树( 法的推广。 (A)、先序(B)、中序(C)、后序(D)、层序 8.在下列链队列Q中,元素a出队的操作序列为( a )遍历方 front (A )、 (B )、 (C)、 (D )、p=Q.front->next; p->next= Q.front->next; p=Q.front->next; Q.front->next=p->next; p=Q.rear->next; p->next= Q.rear->next; p=Q->next; Q->next=p->next; 9. Huffman树的带权路径长度WPL等于( (A)、除根结点之外的所有结点权值之和(C)、各叶子结点的带权路径长度之和(B) 、 ) 所有结点权值之和 根结点的值 b ■

数据结构习题及参考答案

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

中国铁道出版社数据结构(第二版)单元8练习参考答案

单元练习8 一.判断题(下列各题,正确的请在前面的括号内打√;错误的打╳) (√)(1)图可以没有边,但不能没有顶点。 (ㄨ)(2)在无向图中,(V1,V2)与(V2,V1)是两条不同的边。 (ㄨ)(3)邻接表只能用于有向图的存储。 (√)(4)一个图的邻接矩阵表示是唯一的。 (ㄨ)(5)用邻接矩阵法存储一个图时,所占用的存储空间大小与图中顶点个数无关,而只与图的边数有关。 (ㄨ)(6)有向图不能进行广度优先遍历。 (√)(7)若一个无向图的以顶点V1为起点进行深度优先遍历,所得的遍历序列唯一,则可以唯一确定该图。 (√)(8)存储无向图的邻接矩阵是对称的,因此只要存储邻接矩阵的上三角(或下三角)部分就可以了。 (ㄨ)(9)用邻接表法存储图时,占用的存储空间大小只与图中的边数有关,而与结点的个数无关。(√)(10)若一个无向图中任一顶点出发,进行一次深度优先遍历,就可以访问图中所有的顶点,则该图一定是连通的。 二.填空题 (1)图常用的存储方式有邻接矩阵和邻接表等。 (2)图的遍历有:深度优先搜和广度优先搜等方法。 (3)有n条边的无向图邻接矩阵中,1的个数是 _2n____。 (4)有向图的边也称为 _ 弧___ 。 (5)图的邻接矩阵表示法是表示 __顶点____之间相邻关系的矩阵。 (6)有向图G用邻接矩阵存储,其第i行的所有元素之和等于顶点i的 __出度____。 (7)n个顶点e条边的图若采用邻接矩阵存储,则空间复杂度为:O(n2)。 (8)n个顶点e条边的图若采用邻接表存储,则空间复杂度为:O(n+e)。 (9)设有一稀疏图G,则G采用 _邻接表____存储比较节省空间。 (10)设有一稠密图G,则G采用 _邻接矩阵____存储比较节省空间。 (11)图的逆邻接表存储结构只适用于 __有向____图。 (12) n个顶点的完全无向图有 n(n-1)/2_ 条边。 (13)有向图的邻接表表示适于求顶点的出度。 (14)有向图的邻接矩阵表示中,第i列上非0元素的个数为顶点V i的入度。 (15)对于具有n个顶点的图,其生成树有且仅有n-1 条边。 (16)对n个顶点,e条弧的有向图,其邻接表表示中,需要n+e 个结点。 (17)从图中某一顶点出发,访遍图中其余顶点,且使每一顶点仅被访问一次,称这一过程为图的遍历。 (18)无向图的邻接矩阵一定是对称矩阵。

数据结构 习题答案

第1章概论 1. 数据结构是一门研究非数值计算的程序设计问题中,数据元素的①C、数据信息在计算机中的②A以及一组相关的运算等的课程。 ①A.操作对象B.计算方法C.逻辑结构D.数据映象 ②A.存储结构B.关系C.运算D.算法 2. 计算机算法指的是① C ,它必具备输入、输出和② B 等五个特性。 ① A. 计算方法 B. 排序方法 C. 解决问题的有限运算序列 D. 调度方法 ② A. 可行性、可移植性和可扩充性 B. 可行性、确定性和有穷性 C. 确定性、有穷性和稳定性 D. 易读性、稳定性和安全性 3.下面程序段的时间复杂度是D for(i=0;inext = 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; 2.非空的不带头结点的循环单链表,首结点由first指向,尾结点由p指向,则满足: C A. p->next == NULL; B. p == NULL; C. p->next == first; D. p == first; 3.在一个长度为n的顺序存储的线性表中,删除第i个元素(0≤i≤n-1)时,需要移动多少个元素?C A. n-i B. n-i+1 C. n-i-1 D. I 4.在带头结点指针head的单链表中,链表为空的判断条件是?B A. head == NULL B. head->next == NULL C. head != NULL D. head->next == head; 5.在单链表中,指针p指向元素为x的结点,实现“删除x的后继”的语句是B A. p=p->next; B. p->next=p->next->next; C. p->next=p; D. p=p->next->next;

数据结构第八章习题及答案

习题八查找 一、单项选择题 1.顺序查找法适合于存储结构为()的线性表。 A.散列存储 B. 顺序存储或链式存储 C. 压缩存储 D. 索引存储 2.若查找每个记录的概率均等,则在具有n个记录的连续顺序文件中采用顺序查找法查找一个记录,其平均查找长度ASL为( )。 A. (n-1)/2 B. n/2 C. (n+1)/2 D. n 3.适用于折半查找的表的存储方式及元素排列要求为( ) A.链接方式存储,元素无序 B.链接方式存储,元素有序 C.顺序方式存储,元素无序 D.顺序方式存储,元素有序 4.当在一个有序的顺序存储表上查找一个数据时,即可用折半查找,也可用顺序查找,但前者比后者的查找速度( ) A.必定快 B.不一定 C. 在大部分情况下要快 D. 取决于表递增还是递减5.当采用分块查找时,数据的组织方式为 ( ) A.数据分成若干块,每块内数据有序 B.数据分成若干块,每块内数据不必有序,但块间必须有序,每块内最大(或最小)的数据组成索引块 C. 数据分成若干块,每块内数据有序,每块内最大(或最小)的数据组成索引块 D. 数据分成若干块,每块(除最后一块外)中数据个数需相同 6.二叉树为二叉排序树的充分必要条件是其任一结点的值均大于其左孩子的值、小于其右孩子的值。这种说法()。 A.正确 B. 错误 7. 二叉查找树的查找效率与二叉树的((1) )有关, 在 ((2) )时其查找效率最低。 (1): A. 高度 B. 结点的多少 C. 树型 D. 结点的位置 (2): A. 结点太多 B. 完全二叉树 C. 呈单枝树 D. 结点太复杂。 8.如果要求一个线性表既能较快的查找,又能适应动态变化的要求,则可采用( )查找法。 A. 分快查找 B. 顺序查找 C. 折半查找 D. 基于属性 9.分别以下列序列构造二叉排序树,与用其它三个序列所构造的结果不同的是( )。 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) 10.下图所示的4棵二叉树,( )是平衡二叉树。 (A)(B)(C)(D) 11.散列表的平均查找长度()。 A.与处理冲突方法有关而与表的长度无关 B.与处理冲突方法无关而与表的长度有关 C.与处理冲突方法有关且与表的长度有关 D.与处理冲突方法无关且与表的长度无关 12. 设有一组记录的关键字为{19,14,23,1,68,20,84,27,55,11,10,79},用链地址法构造散列表,散列函数为H(key)=key MOD 13,散列地址为1的链中有()个

数据结构试卷带答案

数据结构试卷带答案 问题说明 部分题目或答案有问题,现将已经发现的公布如下,同学在作这些模拟题的时候应着重做题方法的理解,遇到问题以教材或课件为准,不确定的地方可找同学商量或问我 (1)试卷1第一套填空题第1题,试卷1第2套选择题第3题关于循环队列队头指针和队尾指针的约定与教材不一致,以教材或课件为准,实际上front指向的是队头元素,rear指向当前尚未被占用的第一个队列空间,队慢或队空的判定条件及入队/出队等操作具体可参考课件或教材 (2)试卷1第一套应用题第5题,不声明邻接点顺序时默认编号最小的邻接点为第一邻接点,该图的深度优先遍历序列为123465,答案错。此外,当给定邻接表时则邻接点顺序按照邻接表中的前后顺序确定,如试卷1第二套填空题第8题 (3)试卷1第五套应用题第4题,两种方法处理冲突的方法下所求ASL值相等都为7/6 (4)试卷1第五套填空题第8题答案给出的是小顶堆需满足的条件,大顶堆满足ki>=k2i p->rlink->llink=p->llink;此外,注意课堂中讲的指针名和操作方法 (12)第4套填空题第6题答案错,设哈夫曼树中共有99个结点,则该树中有____50_____个叶子结点;若采用二叉链表作为存储结构,则该树中有__100___个空指针域。

(13)第5套选择第8题答案应为A:设连通图G中的边集E={(a,b),(a,e),(a,c),(b,e),(e,d),(d,f),(f,c)},则从顶点a出发可以得到一种深度优先遍历的顶点序列为(A) abedfc (14)第5套应用题第3题题目未指明查找方法,没法作 (15)第6套选择第5题应选B,实际是任意结点至多只有一个孩子:设二叉树的先序遍历序列和后序遍历序列正好相反,则该二叉树满足的条件是(B) 高度等于其结点数 (16)第7套填空1题问题本身错,设指针变量p指向双向链表中的结点A,指针变量s指向被插入的结点X,则在结点A的后面插入结点X的操作序列为____s->left_____=p;s->right=p->right;___p->right_______=s;s->right->left=s;(设结点中的两个指针域分别为left和right)。(17)第8套填空题第8题答案错 (18)第7套选择第3题题目错,应以60为基准关键字,答案为C.设一组初始记录关键字序列为(60,80,55,40,42,85),则以第一个关键字60为基准而得到的一趟快速排序结果是()。 (C) 42,40,55,60,80,85 (17)第6套填空9题.快速排序算法的空间复杂度平均情况下为_O(logn)_,最坏的情况下为_O(n)_。(18)第9套填空第3题,题目说循环队列有m个元素实际指循环队列总长为m,此外,该题关于队头和队尾指针的约定不同于教材 (19)第9套填空第4题答案错,9个元素冒泡排序,第一趟比较次数为8,最多8趟

数据结构试卷和答案

《数据结构》试题参考答案 (开卷) (电信系本科2001级 2002年12月) 一、回答下列问题 (每题4分,共36分) 1. 某完全二叉树共有15381个结点,请问其树叶有多少个? 答:n2=?n/2?=?15381/2?=7691(个) 2. 假设有二维数组A 7×9,每个元素用相邻的6个字节存储,存储器按字节编址。已知A 的起始存储位置(基地址)为1000,末尾元素A[6][8]的第一个字节地址为多少?若按列存储时,元素A[4][7]的第一个字节地址为多少? 答:① 末尾元素A[6][8]的第一个字节地址=1000+(7行×9列—1)×6B =1000+62×6=1372 ②按列存储时,元素A[4][7]的第一个字节地址=1000+(7列×7行+4)×6B =1000+53×6=1318 3. 在KMP 算法中,已知模式串为ADABBADADA ,请写出模式串的next[j]函数值。 答:根据 0 当j =1时 next[ j ]= max { k |1

数据结构习题及答案——严蔚敏

第一章绪论 一、选择题 1.组成数据的基本单位是() (A)数据项(B)数据类型(C)数据元素(D)数据变量 2.数据结构是研究数据的()以及它们之间的相互关系。 (A)理想结构,物理结构(B)理想结构,抽象结构 (C)物理结构,逻辑结构(D)抽象结构,逻辑结构 3.在数据结构中,从逻辑上可以把数据结构分成() (A)动态结构和静态结构(B)紧凑结构和非紧凑结构 (C)线性结构和非线性结构(D)内部结构和外部结构 4.数据结构是一门研究非数值计算的程序设计问题中计算机的(①)以及它们之间的(②)和运算等的学科。 ① (A)数据元素(B)计算方法(C)逻辑存储(D)数据映像 ② (A)结构(B)关系(C)运算(D)算法 5.算法分析的目的是()。 (A)找出数据结构的合理性(B)研究算法中的输入和输出的关系 (C)分析算法的效率以求改进(D)分析算法的易懂性和文档性 6.计算机算法指的是(①),它必须具备输入、输出和(②)等5 个特性。 ① (A)计算方法(B)排序方法(C)解决问题的有限运算序列(D)调度方法

② (A)可执行性、可移植性和可扩充性(B)可行性、确定性和有穷性 (C)确定性、有穷性和稳定性(D)易读性、稳定性和安全性 二、判断题 1.数据的机内表示称为数据的存储结构。() 2.算法就是程序。() 3.数据元素是数据的最小单位。() 4.算法的五个特性为:有穷性、输入、输出、完成性和确定性。() 5.算法的时间复杂度取决于问题的规模和待处理数据的初态。() 三、填空题 1.数据逻辑结构包括________、________、_________ 和_________四种类型,其中树形结构和图形结构合称为_____。 2.在线性结构中,第一个结点____前驱结点,其余每个结点有且只有______个前驱结点;最后一个结点______后续结点,其余每个结点有且只有_______个后续结点。 3.在树形结构中,树根结点没有_______结点,其余每个结点有且只 有_______个前驱结点;叶子结点没有________结点,其余每个结点的后续结点可以_________。 4.在图形结构中,每个结点的前驱结点数和后续结点数可以 _________。 5.线性结构中元素之间存在________关系,树形结构中元素之间存 在______关系,图形结构中元素之间存在_______关系。 6.算法的五个重要特性是_______、_______、______、_______、

数据结构试题及答案

第一章概论 一、选择题 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 )。 for(i=0;i

数据结构习题与答案

第 1 章绪论 课后习题讲解 1. 填空 ⑴()是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。 【解答】数据元素 ⑵()是数据的最小单位,()是讨论数据结构时涉及的最小数据单位。 【解答】数据项,数据元素 【分析】数据结构指的是数据元素以及数据元素之间的关系。 ⑶从逻辑关系上讲,数据结构主要分为()、()、()和()。 【解答】集合,线性结构,树结构,图结构 ⑷数据的存储结构主要有()和()两种基本方法,不论哪种存储结构,都要存储两方面的内容:()和()。 【解答】顺序存储结构,链接存储结构,数据元素,数据元素之间的关系 ⑸算法具有五个特性,分别是()、()、()、()、()。 【解答】有零个或多个输入,有一个或多个输出,有穷性,确定性,可行性 ⑹算法的描述方法通常有()、()、()和()四种,其中,()被称为算法语言。 【解答】自然语言,程序设计语言,流程图,伪代码,伪代码 ⑺在一般情况下,一个算法的时间复杂度是()的函数。 【解答】问题规模 ⑻设待处理问题的规模为n,若一个算法的时间复杂度为一个常数,则表示成数量级的形式为(),若为n*log25n,则表示成数量级的形式为()。 【解答】Ο(1),Ο(nlog2n) 【分析】用大O记号表示算法的时间复杂度,需要将低次幂去掉,将最高次幂的系数去掉。 2. 选择题 ⑴顺序存储结构中数据元素之间的逻辑关系是由()表示的,链接存储结构中的数据元素之间的逻辑关系是由()表示的。 A 线性结构 B 非线性结构 C 存储位置 D 指针 【解答】C,D 【分析】顺序存储结构就是用一维数组存储数据结构中的数据元素,其逻辑关系由存储位置(即元素在数组中的下标)表示;链接存储结构中一个数据元素对应链表中的一个结点,元素之间的逻辑关系由结点中的指针表示。

(完整版)数据结构练习题(含答案)

数据结构练习题 习题1 绪论 1.1 单项选择题 1. 数据结构是一门研究非数值计算的程序设计问题中,数据元素的①、数据信息在计算机中的②以及一组相关的运算等的课程。 ① A.操作对象B.计算方法C.逻辑结构D.数据映象 ② A.存储结构B.关系C.运算D.算法 2. 数据结构DS(Data Struct)可以被形式地定义为DS=(D,R),其中D是①的有限集合,R是D上的②有限集合。 ① A.算法B.数据元素C.数据操作D.数据对象 ② A.操作B.映象C.存储D.关系 3. 在数据结构中,从逻辑上可以把数据结构分成。 A.动态结构和静态结构B.紧凑结构和非紧凑结构 C.线性结构和非线性结构D.内部结构和外部结构 4. 算法分析的目的是①,算法分析的两个主要方面是②。 ① A. 找出数据结构的合理性 B. 研究算法中的输入和输出的关系 C. 分析算法的效率以求改进 D. 分析算法的易懂性和文档性 ② A. 空间复杂性和时间复杂性 B. 正确性和简明性 C. 可读性和文档性 D. 数据复杂性和程序复杂性 5. 计算机算法指的是①,它必具备输入、输出和②等五个特性。 ① A. 计算方法 B. 排序方法 C. 解决问题的有限运算序列 D. 调度方法 ② A. 可行性、可移植性和可扩充性 B. 可行性、确定性和有穷性 C. 确定性、有穷性和稳定性 D. 易读性、稳定性和安全性 1.2 填空题(将正确的答案填在相应的空中) 1. 数据逻辑结构包括、和三种类型,树形结构和图形结构合称为。 2. 在线性结构中,第一个结点前驱结点,其余每个结点有且只有个前驱结点;最后一个结点后续结点,其余每个结点有且只有个后续结点。 3. 在树形结构中,树根结点没有结点,其余每个结点有且只有个直接前驱结点,叶子结点没有结点,其余每个结点的直接后续结点可以。 4. 在图形结构中,每个结点的前驱结点数和后续结点数可以。 5. 线性结构中元素之间存在关系,树形结构中元素之间存在关系,图形结构中元素之间存在关系。 6. 算法的五个重要特性是__ __ , __ __ , ___ _ , __ __ , _ ___。 7. 分析下面算法(程序段),给出最大语句频度,该算法的时间复杂度是__ __。 for (i=0;i

数据结构试卷B卷(含答案)

《数据结构》试卷B 一、填空题(每空1分,共15分) 1. 向量、栈和队列都是结构,可以在向量的位置插入和删除元素;对于栈 只能在插入和删除元素;对于队列只能在插入和删除元素。 2. 栈是一种特殊的线性表,允许插入和删除运算的一端称为。不允许插入和删除 运算的一端称为。 3. 数据结构是一门研究非数值计算的程序设计问题中计算机的以及它们之间 的和运算等的学科。 4. 在顺序表中插入或删除一个元素,需要平均移动元素,具体移动的元素个数与有关。 5. 在具有n个单元的循环队列中,队满时共有个元素。 6. 假设在有序线性表a[20]上进行折半查找,则比较一次查找成功的结点数为1;比较两次查 找成功的结点数为;比较四次查找成功的结点数为;平均查找长度为。 二、判断正误(判断下列概念的正确性,并作出简要的说明。)(每小题1分,共10分) ()1. 线性表的每个结点只能是一个简单类型,而链表的每个结点可以是一个复杂类型。()2. 在表结构中最常用的是线性表,栈和队列不太常用。 ()3. 栈是一种对所有插入、删除操作限于在表的一端进行的线性表,是一种后进先出型结构。 ()4. 对于不同的使用者,一个表结构既可以是栈,也可以是队列,也可以是线性表。()5.线性表的逻辑顺序与存储顺序总是一致的 ()6. 栈和队列是一种非线性数据结构。 ()7. 栈和队列的存储方式既可是顺序方式,也可是链接方式。 ()8. 两个栈共享一片连续内存空间时,为提高内存利用率,减少溢出机会,应把两个栈的栈底分别设在这片内存空间的两端。 ()9. 队是一种插入与删除操作分别在表的两端进行的线性表,是一种先进后出型结构。

数据结构习题参考答案

第1章概论 1.数据、数据元素、数据结构、数据类型的含义分别是什么? 数据:对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并由计算机程序处理的符号的总称。 数据元素:数据的基本单位,在计算机程序中通常作为一个整体考虑。 数据结构:数据元素之间的关系+运算,是以数据为成员的结构,是带结构的数据元素的集合,数据元素之间存在着一种或多种特定的关系。 数据类型:数据类型是用来区分不同的数据;由于数据在存储时所需要的容量各不相同,不同的数据就必须要分配不同大小的内存空间来存储,所有就要将数据划分成不同的数据类型。数据类型包含取值范围和基本运算等概念。 2.什么是数据的逻辑结构?什么是数据的物理结构?数据的逻辑结构与物理结构的区别和联系是什么? 逻辑结构:数据的逻辑结构定义了数据结构中数据元素之间的相互逻辑关系。数据的逻辑结构包含下面两个方面的信息: ①数据元素的信息; ②各数据元素之间的关系。 物理结构:也叫储存结构,是指逻辑结构的存储表示,即数据的逻辑结构在计算机存储空间中的存放形式,包括结点的数据和结点间关系的存储表示。 数据的逻辑结构和存储结构是密不可分的,一个操作算法的设计取决于所选定的逻辑结构,而算法的实现依赖于所采与的存储结构。采用不同的存储结构,其数据处理的效率是不同的。因此,在进行数据处理时,针对不同问题,选择合理的逻辑结构和存储结构非常重要。 3.数据结构的主要操作包括哪些? 对于各种数据结构而言,他们在基本操作上是相似的,最常用的操作有: ●创建:建立一个数据结构; ●清除:清除一个数据结构; ●插入:在数据结构中增加新的结点; ●删除:把指定的结点从数据结构中删除; ●访问:对数据结构中的结点进行访问; ●更新:改变指定结点的值或改变指定的某些结点之间的关系; ●查找:在数据结构中查找满足一定条件的结点; ●排序:对数据结构中各个结点按指定数据项的值,以升序或降序重新排列。 4.什么是抽象数据类型?如何定义抽象数据类型? 抽象数据类型(Abstract Data Type 简称ADT)是指一个数学模型以及定义在此数学模型上的一组操作。ADT是与具体的物理存储无关的数据类型,因此,不论ADT的内部结构如何变化,只要其数据结构的特性不变,都不影响其外部使用。 对抽象数据类型的描述一般用(D,R,P)三元组表示,抽象数据类型的定义格式为: ADT<抽象数据类型名> { 数据对象D:<数据对象的定义> 数据关系R:<数据关系的定义> 基本操作P:<基本操作的定义>

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