数据结构中图是非常重要的一个知识点,可以类比于树记忆。
图的深度和广度遍历和二叉树的深度和广度遍历有异曲同工之处,可以类比学习记忆(以上是我个人观点)。
下面介绍一下用c语言怎么编写图的2种遍历的程序
首先程序的头文件和结构体定义如下
#include"stdio.h"
#include"stdlib.h"
#define maxnum 30
#define false 0
#define true 1
int visited[maxnum];
typedef char vertextype;
typedef int infotype;
typedef struct node
{
infotype info;
struct node *next;
}edgenode;//边
typedef struct vnode
{
vertextype vertex;
edgenode *firstedge;
}vertexnode;//顶点
typedef struct
{
vertexnode adjlist[maxnum];
int vertexnum,edgenum;
}ALgraph;//图
typedef struct
{
vertexnode data[maxnum];
int front,rear;
}seqqueue,*Pseqqueue;//队列的定义
接下来编写函数,首先是图的创建函数
void creat(ALgraph *g)
{
int i,j,k;
edgenode *p,*q;
printf("请输入图的顶点数和弧数\n");
scanf("%d,%d",&(g->vertexnum),&(g->edgenum));//输入要用逗号隔开
printf("请输入顶点信息\n");
fflush(stdin);