数据结构之图的常用存储结构,及其典型应用,递归算法
一、实验目的
- 熟悉图的两种常用的存储结构,即邻接矩阵和邻接表,以及在这两种存储结构上的遍历图的方法,即深度优先遍历和广度优先遍历。
- 进一步掌握递归算法的设计方法。
- 了解图的典型应用的算法程序。
二、实验内容:
- 建立图的邻接矩阵存储结构(数组表示),并将邻接矩阵输出。
- 建立图的邻接表存储结构,并将邻接表输出。
- 图的深度优先遍历。
- 图的广度优先遍历。
三、实验要求
在本题下面提交源程序和实验运行结果截图。
1. 建立图的邻接矩阵存储结构(数组表示),并将邻接矩阵输出。
#include<stdio.h>
#define max 100
int creatcost(int cost[][max])
{
int vexnum,arcnum,i,j,k,v1,v2;
printf("\ninput the vexnum,arcnum:");
scanf("%d,%d",&vexnum,&arcnum);
for(i=1;i<=vexnum;i++)
for(j=1;j<=vexnum;j++)
{
cost[i][j]=0;
}
for(k=0;k<arcnum;k++)
{
printf("v1,v2=");
scanf("%d,%d",&v1,&v2);
cost[v1][v2]=1;
}
return vexnum;
}
int main()
{
int i,j,vexnum;
int cost[max][max];
vexnum=creatcost(cost);
printf("the Adjacency Matrix is:\n");
for(i=1;i<=vexnum;i++)
{
for(j=1;j<=vexnum;j++)
printf("%3d",cost[i][j]);
printf