假设图G采用邻接表存储
信息学模拟试卷一

模拟试卷一一、单项选择题1.若某链表中最常用的操作是在最后一个结点之后插入一个结点和删除最后一个结点,则采用存储方式最节省运算时间。
(1)单链表 (2)双链表(3)单循环链表 (4)带头结点的双循环链表2.设一个栈的输入序列为A,B,C.,D,则借助一个栈所得到的输出序列不可能是(1)A,B,C,D (2)D,C,B,A (3)A,C,D,B (4)D,A,B,C3.串是。
(1)不少于一个字母的序列 (2)任意个字母的序列(3)不少于一个字符的序列 (4)有限个字符的序列4.链表不具有的特点是。
(1)可随机访问任一元素 (2)插入删除不需要移动元素(3)不必事先估计存储空间 (4)所需空间与线性表长度成正比5.在有n个叶子结点的哈夫曼树中,其结点总数为。
(1)不确定 (2)2n (3)2n+1 (4)2n-16.任何一个无向连通图的最小生成树(1)只有一棵 (2)有一棵或多棵 (3)一定有多棵 (4)可能不存在7.将一棵有100个结点的完全二叉树从根这一层开始,每一层上从左到右依次对结点进行编号,根结点的编号为1,则编号为49的结点的左孩子编号为。
(1)98 (2)99 (3)50 (4)488.下列序列中,是执行第一趟快速排序后得到的序列(排序的关键字类型是字符串)。
(1)[da,ax,eb,de,bb]ff[ha,gc] (2)[cd,eb,ax,da]ff[ha,gc,bb] (3)[gc,ax,eb,cd,bb]ff[da,ha] (4)[ax,bb,cd,da]ff[eb,gc,ha] 9.用n个键值构造一棵二叉排序树,最低高度为。
(1)n/2 (2)n (3)[log2n] (4)[log2n+1]10.二分查找法要求查找表中各元素的键值必须是排列。
(1)递增或递减 (2)递增 (3)递减 (4)无序11.对于键值序列(12,13,11,18,60,15,7,18,25,100),用筛选法建堆,必须从键值为的结点开始。
数据结构考试题2

else
break;
}
while (p!=NULL && q!=NULL && p->data==q->data)
{//当两者值相等时同步后移
p=p->next;
q=q->next;
}
if (q==NULL)//当B中节点比较完毕返回1
return 1;
else//否则返回0
return 0;
三
1.设A=(a1,a2,…,an),B=(b1,b2,…,bm)是两个递增有序的线性表(其中n、m均大于1),且所有数据元素均不相同。假设A、B均采用带头节点的单链表存放,设计一个尽可能高效的算法判断B是否为A的一个子序列,并分析你设计的算法的时间复杂度和空间复杂度。(15分)
2.假设二叉树b采用二叉链存储结构存储,试设计一个算法,输出该二叉树中从根节点出发的第一条最长的路径长度,并输出此路径上各节点的值。并分析你设计的算法的时间复杂度和空间复杂度。(15分)
{//pathlen和maxpathlen的初值均为0
int i;
if (b==NULL)
{if (pathlen>maxpathlen)//通过比较求最长路径
{for (i=pathlen-1;i>=0;i--)
maxpath[i]=path[i];
maxpathlen=pathlen;
}
}
else
}
}
A. O(n)B. O( )
C. O(nlog2n)D. O(log2n)
3.在一个双链表中,删除p所指节点(非首、尾节点)的操作是。
A.p->prior->next=p->next;p->next->prior=p->prior;
计算机学科专业基础综合数据结构-图(二)_真题-无答案

计算机学科专业基础综合数据结构-图(二)(总分100,考试时间90分钟)一、单项选择题(下列每题给出的4个选项中,只有一个最符合试题要求)1. 具有6个顶点的无向图至少应有______条边才能确保是一个连通图。
A.5 B.6 C.7 D.82. 设G是一个非连通无向图,有15条边,则该图至少有______个顶点。
A.5 B.6 C.7 D.83. 下列关于无向连通图特性的叙述中,正确的是______。
①所有顶点的度之和为偶数②边数大于顶点个数减1③至少有一个顶点的度为1A.只有① B.只有② C.①和② D.①和③4. 对于具有n(n>1)个顶点的强连通图,其有向边的条数至少是______。
A.n+1B.nC.n-1D.n-25. 下列有关图的说法中正确的是______。
A.在图结构中,顶点不可以没有任何前驱和后继 B.具有n个顶点的无向图最多有n(n-1)条边,最少有n-1条边 C.在无向图中,边的条数是结点度数之和 D.在有向图中,各顶点的入度之和等于各顶点的出度之和6. 对于一个具有n个顶点和e条边的无向图,若采用邻接矩阵表示,则该矩阵大小是______,矩阵中非零元素的个数是2e。
A.n B.(n-1)2 C.n-1 D.n27. 无向图的邻接矩阵是一个______。
A.对称矩阵 B.零矩阵 C.上三角矩阵 D.对角矩阵8. 从邻接矩阵可知,该图共有______个顶点。
如果是有向图,该图共有4条有向边;如果是无向图,则共有2条边。
A.9 B.3 C.6 D.1 E.5 F.4 G.2 H.09. 下列说法中正确的是______。
A.一个图的邻接矩阵表示是唯一的,邻接表表示也唯一 B.一个图的邻接矩阵表示是唯一的,邻接表表示不唯一 C.一个图的邻接矩阵表示不唯一,邻接表表示唯一 D.一个图的邻接矩阵表示不唯一,邻接表表示也不唯一10. 用邻接表存储图所用的空间大小______。
A.与图的顶点数和边数都有关 B.只与图的边数有关 C.只与图的顶点数有关 D.与边数的二次方有关11. 采用邻接表存储的图的深度优先搜索算法类似于二叉树的______,广度优先搜索算法类似于二叉树的层次序遍历。
山东专升本数据结构练习1

一、填空题:(每小题2分,共10分)1. 设有数据结构(D,R),其中D 是数据元素的有限集,R 是的有限集。
2. 深度为k 的二叉树其结点数至多有个。
3. 栈是一种特殊的线性表,它允许在表的一端进行操作。
4. 通常象交通、道路问题的数学模型是一种称为的数据结构。
5. 哈希表是一种查找表,可以根据哈希函数直接获得。
二、单项选择题:(每小题2分,共10分)对于下列各题,在备选答案中选出一个正确的,并将其编号填在“”位置上。
1. 若线性表最常用的操作是存取第i 个元素及其前驱元素的值,则采用存储方式最节省运算时间。
A. 单链表B. 双链表C. 单循环链表D. 顺序表2. 下列排序算法中,算法在进行一趟相应的排序处理结束后不一定能选出一个元素放到其最终位置上。
A. 直选择排序B. 冒泡排序C. 归并排序D. 堆排序3. 队列的操作原则是。
A. 先进后出B. 先进先出C. 只能进行插入D. 只能进行删除4. 在具有n 个结点的二叉链表中,非空的链域个数为。
A. n-1B. nC. n+1D. 不确定5. 对具有n 个元素的有序查找表采用折半查找算法查找一个键值,其最坏比较次数的数量级为。
A. O(log2n)B. O(n)C. O(nlog2n)D. O(n2)三、判断题:(每小题2分,共10分)判断下列各题是否正确,若正确,在题后的括号内填“T”,否则填“F”。
1. 在栈为空的情况下不能作出栈处理,否则,将产生下溢出。
()2. 如果有向图G=(V, E) 的拓扑序列唯一,则图中必定仅有一个顶点的入度为0、一个顶点的出度为0。
()3. 在大根堆中,必定满足每个结点的键值大于其左右子树中所有结点的键值。
()4. 在采用线性探测法处理冲突的散列表中所有同义词在表中相邻。
()5. 在索引顺序表中,对索引表既可采用顺序查找,也可采用二分查找。
()四、解答下列各题:(每题10分,共40分)1. 已知线性表L 采用带头结点的的单向循环链表表示,试给出它的存储结构类型描述及相应的示意图。
《数据结构》单元测试1(含答案)

《数据结构》单元测试1一、选择题(每题2分,共40分)1.数据的最小单位是( A)。
(A) 数据项(B) 数据类型(C) 数据元素(D) 数据变量2. 栈和队列的共同特点是( A )。
(A)只允许在端点处插入和删除元素(B)都是先进后出(C)都是先进先出(D)没有共同点3. 用链接方式存储的队列,在进行插入运算时( D )。
(A)仅修改头指针(B)头、尾指针都要修改(C)仅修改尾指针 (D)头、尾指针可能都要修改4. 以下数据结构中哪一个是非线性结构?( D )(A)队列(B)栈(C)线性表(D)二叉树5.函数substr(“DATASTRUCTURE”,5,9)的返回值为( A )。
(A) “STRUCTURE”(B) “DATA”(C) “ASTRUCTUR”(D) “DATASTRUCTURE”6.设一个有序的单链表中有n个结点,现要求插入一个新结点后使得单链表仍然保持有序,则该操作的时间复杂度为( D)。
(A) O(log2n) (B) O(1) (C) O(n2) (D) O(n)7.设一棵m叉树中度数为0的结点数为N0,度数为1的结点数为Nl,……,度数为m的结点数为Nm,则N0=( B)。
(A) Nl+N2+……+Nm(B) 1+N2+2N3+3N4+……+(m-1)Nm(C) N2+2N3+3N4+……+(m-1)Nm (D) 2Nl+3N2+……+(m+1)Nm 8.设有序表中有1000个元素,则用二分查找查找元素X最多需要比较( B)次。
(A) 25 (B) 10 (C) 7 (D) 19. 二叉树的第k层的结点数最多为( D )。
(A)2k-1 (B) 2K+1 (C) 2K-1 (D)2k-110. 树最适合用来表示( C )。
(A)有序数据元素(B)无序数据元素(C)元素之间具有分支层次关系的数据 (D)元素之间无联系的数据个权构成一棵Huffman树,其节点总数为( A )。
数据结构期末复习题

练习题:一、填空题1、元素项是数据的最小单位,数据元素是讨论数据结构时涉及的最小数据单位。
2、设一棵完全二叉树具有100个结点,则此完全二叉树有49个度为2的结点。
3、在用于表示有向图的邻接矩阵中,对第i列的元素进行累加,可得到第i个顶点的出度。
4、已知一棵度为3的树有2个度为1的结点,3个度为2的结点,4个度为3的结点,则该树中有12个叶子的结点。
n=n0+n1+n2+…+nm (1)又有除根结点外,树中其他结点都有双亲结点,且是唯一的(由树中的分支表示),所以,有双亲的结点数为:n-1=0*n0+1*n1+2*n2+…+m*nm (2)联立(1)(2)方程组可得:叶子数为:n0=1+0*n1+1*n2+2*n3+...+(m-1)*nm5、有一个长度为20的有序表采用二分查找方法进行查找,共有4个元素的查找长度为3。
6、对于双向链表,在两个结点之间插入一个新结点需要修改的指针共4个。
删除一个结点需要修改的指针共2个。
7、已知广义表LS=(a,(b,c,d),e),它的深度是2,长度是3。
8、循环队列的引入是为了克服假溢出。
9、表达式a*(b+c)-d/f的后缀表达式是abc+*df/-。
10、数据结构中评价算法的两个重要指标是时间复杂度和空间复杂度。
11、设r指向单链表的最后一个结点,要在最后一个结点之后插入s所指的结点,需执行的三条语句是r->next=s; r=s; r->next=null;12、设有一个空栈,栈顶指针为1000H(十六进制),现有输入序列为1,2,3,4,5,经过PUSH,PUSH,POP,PUSH,POP,PUSH,PUSH之后,输出序列是23,而栈顶指针值是1012_H。
设栈为顺序栈,每个元素占4个字节。
13、模式串P=‘abaabcac’的next函数值序列为01122312。
14、任意连通图的连通分量只有一个,即是自身。
15、栈的特性是先进后出。
16、串的长度是包含的元素个数。
JAV数据库考题适用于大连东软信息学院

5.8 习题5.8.1 知识点:图的基本概念一、选择题1①n个顶点的连通图至少有( A )条边。
A.n-1 B.nC.n+1 D.02① 在无向图中定义顶点vi与vj之间的路径为从vi到达vj的一个(B )。
A .顶点序列B .边序列C.权值总和 D .边的条数3① 具有n个顶点的有向图最多可包含(D )条有向边。
A. n-1B. nC. n(n-1)/2D. n(n-1)4①在无向图中定义顶点的度为与它相关联的(B )的数目。
A .顶点B .边C.权 D .权值5①一个有N个顶点的无向图中,要连通全部顶点至少需要(C )条边。
A. NB. N+1C. N -1D. N/26② 含N个顶点的连通图中的任意一条简单路径,其长度不可能超过( C )。
A. 1B. N/2C. N -1D. N7② 设无向图的顶点个数为n,则该图最多有(B )条边。
【清华大学1998】【西安电子科技大1998】【北京航空航天大学1999】A. n-1B. n(n-1)/2C. n(n+1)/2D. n(n-1)8② 在一个无向图中,所有顶点的度数之和等于所有边数( B )倍,在一个有向图中,所有顶点的入度之和等于所有顶点出度之和的( C )倍。
【哈尔滨工业大学2001】A. 1/2B. 2C. 1D. 4二、填空题1②n (n> 0)个顶点的无向图中顶点的度的最大值为___n-1 ____ 。
2②n (n> 0)个顶点的无向图最少有___0 _______ 条边。
3②n (n> 0)个顶点的连通无向图各顶点的度之和最少为__2(n-1)__ 。
4② 具有n个顶点的无向完全图,边的总数为__n(n-1)/2 ___ 条;而具有n个顶点的有向完全图边的总数为__n(n-1) ____ 条。
5② 在有n个顶点的有向图中,每个顶点的度最大可达__2(n-1)____ 。
6② 在有n个顶点的有向图中,若要使任意两点间可以互相到达,则至少需要__n___条弧。
图练习与答案

一、应用题1.首先将如下图所示的无向图给出其存储结构的邻接链表表示,然后写出对其分别进行深度,广度优先遍历的结果。
1题图答.深度优先遍历序列:125967384宽度优先遍历序列:123456789注:(1)邻接表不唯一,这里顶点的邻接点按升序排列(2)在邻接表确定后,深度优先和宽度优先遍历序列唯一(3)这里的遍历,均从顶点1开始2.给出图G:(1).画出G的邻接表表示图;(2).根据你画出的邻接表,以顶点①为根,画出G的深度优先生成树和广度优先生成树。
(3)宽度优先生成树3.在什么情况下,Prim算法与Kruskual算法生成不同的MST?答.在有相同权值边时生成不同的MST,在这种情况下,用Prim或Kruskal也会生成不同的MST4.已知一个无向图如下图所示,要求分别用Prim 和Kruskal 算法生成最小树(假设以①为起点,试画出构造过程)。
答.Prim 算法构造最小生成树的步骤如24题所示,为节省篇幅,这里仅用Kruskal 算法,构造最小生成树过程如下:(下图也可选(2,4)代替(3,4),(5,6)代替(1,5))5.G=(V,E)是一个带有权的连通图,则:(1).请回答什么是G 的最小生成树; (2).G 为下图所示,请找出G 的所有最小生成树。
28题图答.(1)最小生成树的定义见上面26题 (2)最小生成树有两棵。
(限于篇幅,下面的生成树只给出顶点集合和边集合,边以三元组(Vi,Vj,W )形式),其中W 代表权值。
V (G )={1,2,3,4,5} E1(G)={(4,5,2),(2,5,4),(2,3,5),(1,2,7)};E2(G)={(4,5,2),(2,4,4),(2,3,5),(1,2,7)}6.请看下边的无向加权图。
(1).写出它的邻接矩阵。
(2).按Prim 算法求其最小生成树,并给出构造最小生成树过程中辅助数组的各分量值。
辅助数组各分量值:7.已知世界六大城市为:(Pe)、纽约(N)、巴黎(Pa)、伦敦(L) 、东京(T) 、墨西哥(M),下表给定了这六大城市之间的交通里程:世界六大城市交通里程表(单位:百公里)(1).画出这六大城市的交通网络图;(2).画出该图的邻接表表示法;(3).画出该图按权值递增的顺序来构造的最小(代价)生成树.8.已知顶点1-6和输入边与权值的序列(如右图所示):每行三个数表示一条边的两个端点和其权值,共11行。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
typedef struct { // 图的定义
VertexType AdjMatrix // 顶点信息 arcs; // 弧的信息 vexs[MAX_VERTEX_NUM]; int vexnum, arcnum; // 顶点数,弧数
GraphKind kind;
} MGraph;
// 图的种类标志
第7章 图
教学重点: 图的定义、术语及其含义,各种图的邻接矩阵 表示法及其类型说明,图的按深度优先搜索遍 历方法和按广度优先搜索遍历方法,生成树和 最小生成树的概念, Prim 算法,拓扑序列和 拓扑排序的概念和算法思想,关键路径的算法 思想,最短路径的算法思想。 教学难点: 图的存储表示、关键路径,最短路径算法 。
引言
图(Graph)是一种较线性表和树更为复杂 的数据结构。 图形结构中,结点之间 的关系可以是任意的, 任意两个数据元素之间都可能相关。
应用广泛:
如电路网络分析、交通运输、管理与线路的 铺设、印刷电路板与集成电路的布线等众多直接 与图有关的问题,它们必须用图的有关方法进行 处理; 另外像工作的分配、工程进度的安排、课程表 的制订、关系数据库的设计等许多实际问题,如 果间接地用图来表示,处理起来比较方便。
第7章 图
二、教学要求:
1、理解图的基本概念,熟悉图的各种存储结构及其构 造算法; 2、熟练掌握图的两种搜索路径的遍历; 3、掌握构造最小生成树的方法,并理解算法; 4、掌握用Dijkstra方法求解单源最短路径问题,理解 Floyd(弗洛伊德)算法思想; 5、掌握求活动网络的拓扑排序的方法,并理解算法; 6、掌握求解关键路径的方法。
邻接表表示
图的邻接表存储方法是一种顺序分配与链式分配相结合 的存储方法,它包括两部分: 一部分是单链表,用来存 放边的信息;另一部分是数组,主要用来存放顶点本身 的数据信息。 表结点
adjvex nextarc info
指示下一条边 或弧的结点
信息可无
指示与顶点Vi邻接的 点在图中的位置
头结点
data firstarc
回答问题
1、什么是图形结构?它和线性结构、树 形结构有何区别? 2、以下图为例,理解图的相关术语,并 回答有关问题。
A BABE源自C G1 D C G2 D
回答问题
(1)G1中,A到D的路径是什么?路径长 度多少? (2)G2中,A到E的路径是什么?路径长 度多少? (3)G1是强连通图吗?若不是找出其强 连通分量? (4)写出G2的生成树; (5)写出G1的生成森林;
(3)矩阵中1的个数的一半为图中边的数目;
(4)很容易判断顶点i 和顶点j之间是否有边相 连(看矩阵中i行j列值是否为1)。
邻接矩阵存储表示特点
邻接矩阵法优点:
容易实现图的操作,如:求某顶点的度、判断顶点 之间是否有边(弧)、找顶点的邻接点等等。仅耗 费 O(1) 时间。
邻接矩阵法缺点:
n个顶点需要n*n个单元存储边(弧);空间效率为 O(n2)。对稀疏图而言尤其浪费空间。
typedef struct ArcCell { // 弧的定义
VRType adj; // VRType是顶点关系类型。 // 对无权图,用1或0表示相邻否; // 对带权图,则为权值类型。
InfoType *info; // 该弧相关信息的指针
} ArcCell,
AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM];
回答问题
(6)写出G1的邻接矩阵、邻接表和十字链表; (7)写出G2的邻接矩阵、邻接表和邻接多重表。 3、如下所示为一带权有向图,写出其邻接矩阵、 邻接表。
V1
10
40
V2
20
V3
50
V4
邻接矩阵的结构定义:
#define MAX_VERTEX_NUM 20 Typedef enum{DG,DN,UDG,UDN} Graphkind;
问题的提出
假设有”平顶山”、”郑州”、”洛阳”、”许昌”、”漯 河”五城市的交通图如下,完成如下要求: 1:对任意输入的两个城市,输出它们之间的直接距 离,有则输出实际距离,无则输出道路不直接相通。 2:对任意一个城市,输出都能够直接通达哪些城市, 平顶山 距离多少? 1
100 120
洛阳 郑州
3
第七章
图
第7章 图
一、教学内容:
1、图的基本概念 2、图的存储结构(邻接矩阵、邻接表); 3、图的遍历(深度优先搜索、广度优先搜索); 4、最小生成树(kruskul算法、prim算法); 5、最短路径(dijkstra算法、floyd算法); 6、AOV网络与拓扑排序; 7、AOE网络与关键路径。
150
150 200
5
漯河
2
4
180 许昌
第7章 图
7.1 图的定义和术语 7.2 图的存储结构 7.3 图的遍历操作 7.4 图的连通性问题 7.5 有向无环图及其应用 7.6 最短路径
7.1 图的定义和术语
1、图的结构定义、图形结构特点 2、顶点、弧、边、弧头、弧尾 3、无向图和有向图 4、完全图和有向完全图 5、网、子图 6、顶点的度、入度和出度、 边、弧与各顶点度的关系
指示链表中 第一个结点
存储顶点Vi的 名或其他信息
邻接表表示
从无向图的邻接表可以得到如下结论:
(1)第i 个链表中结点数目为顶点i的度; (2)所有链表中结点数目的一半为图中边数;
(3)占用的存储单元数目为n+2e 。
从有向图的邻接矩阵可以得出如下结论
(1) 矩阵不一定是对称的;
(2) 第i 行中1的个数为顶点i 的出度;
(3) 第i列中1的个数为顶点 i的入度; (4) 矩阵中1的个数为图中弧的数目; (5) 很容易判断顶点i 和顶点j 是否有弧相连.
从无向图的邻接矩阵可以得出如下结论
(1)矩阵是对称的,可压缩存储(上(下)三角; (2)第i行或第i 列中1的个数为顶点i 的度;
7.1 图的定义和术语
7、路径、路径长度、回路(环)、简单 路径 8、连通、连通图、连通分量 9、强连通图、强连通分量 10、生成树、有向树、生成森林
7.2 图的存储表示
图的数组(邻接矩阵)存储表示(重点) 图的邻接表存储表示(重点) 有向图的十字链表存储表示 无向图的邻接多重表存储表示