- 119
- 0
- 约2.36千字
- 约 8页
- 2017-05-27 发布于湖北
- 举报
数据结构(C语言描述)课后答案习题答案7课案
习 题 7
1)选择题
(1)图中有关路径的定义是(A)。
A.B.C.D.n,则该图最多有(B)条边。
A.n-1.n(n1)/2 C.n(n+1)/2.n2n个顶点的连通无向图,其边的个数至少为(A)。
A.n1 B.nC.n1 D.nlog2nn个顶点的有向图,至少需要(B)条边
A.n1 B.nC.n1 D.2nn个结点的完全有向图含有边的数目为()A.n2B.n(n1) C.nD.n(n1)
(6)一个有n个结点的图,最少有(B)个连通分量,最多有(D)个连通分量。
A.0 B.1 C.n1 D.nA.1/2B.2C.1D.4下面结构中最适于表示稀疏无向图的是,适于表示稀疏有向图的是A.B.C.D.E.邻接表下列哪图的邻接矩阵是对称矩阵A.B.C.D.A.B.C.D.7-26所示。
图7-26 某图的邻接表
①从顶点v1进行深度优先遍历,遍历过程中要经过的顺序是(A)。
A.v1 v2 v3B.v1 v v4 C.v1 v v4 D.v1 v v5
②从顶点v1进行广度优先遍历,遍历过程中要经过的顺序是(D)。
A.v1 v2 v3B.v1 v v4 C.v1 v v4 D.v1 v v5
(12)一个加权无向连通图的最小生成树(A)。
A.B.C.D.在n个结点的无向图中,若边数大于n1,则该图必是连通图×)
(2)有e条边的无向图,在邻接表中有e个结点×)
(3)有向图中顶点的度等于其邻接矩阵中第v行中1的个数×)
(4)强连通图的各顶点间均可达√)
(5)邻接多重表是无向图和有向图的链式存储结构×)
(6)用邻接矩阵法存储一个图所需的存储单元数目与图的边数有关×)
(7)有n个顶点的无向图采用邻接矩阵表示图中的边数等于邻接矩阵中非零元素之和的一半√)
(8)求最小生成树的普里姆Prim)算法中边上的权可正可负×)
3)填空题
(1)判断一个无向图是一棵树的条件是有n个顶点,n-1条边的无向连通图。一个连通图的生成树是一个极小连通子图。具有10个顶点的无向图,边的总数最多为G是一个非连通无向图,共有28条边,则该图至少有个顶点在有n个顶点的有向图中,若要使任意两点间可以互相到达,则至少需要条弧。如果含n个顶点的图形形成一个环,则它有棵生成树。7-26的邻接表分别写出从v6出发进行广度优先和深度优先遍历序列。证明:具有n个顶点和多于n1条边的无向连通图G一定不是树证明:具有n个顶点n-1条边的无向连通图是自由树,即没有确定根结点的树,每个结点均可当根。若边数多于n-1条,因一条边要连接两个结点,则必因加上这一条边而使两个结点多了一条通路,即形成回路。形成回路的连通图不再是树(在图论中树定义为无回路的连通图)。7-27所示的无向网的最小生成树。
图7-27 某无向网
(略)
(4)按照Prim算法,写出从顶点v2开始构造图7-26的最小生成树的过程。
(略)
(5)按照Sollin算法,写出构造图7-26的最小生成树的过程。
(略)
(6)按照Dijkstra算法,写出求图7-26的顶点v0到其他各个结点的最短路径过程中数组dist和pre各分量的变化情况表。以作存储结构,图的算法void CreatGraph (AdjList g) //建立有n个顶点和m 条边的无向图的邻接表存储结构
{
int n,m;
scanf(%d%d,n,m);
for (i =1,i=n;i++)//输入顶点信息,建立顶点向量
{scanf(g[i].vertex); g[i].firstarc=null;}
for (k=1;k=m;k++)//输入边信息
{
scanf(v1,v2);//输入两个顶点
i=GraphLocateVertex (g,v1);
j=GraphLocateVertex (g,v2); //顶点定位
p=(ArcNode *)malloc(sizeof(ArcNode));//申请边结点
p-adjvex=j; p-next=g[i].firstarc; g[i].firstarc=p;//将边结点链入
p=(ArcNode *)malloc(sizeof(ArcNode));
p-adjvex=i;
p-next=g[j].firstarc;
g[j].frstarc=p;
}
}//算法CreatGraph结束
(2)设有向G图有n个点e条边一算法根据其邻接表生成其反向邻接表要求算法复杂为 {gin[i].vertex=gout[i].vertex; gin.firstarc=n
原创力文档

文档评论(0)