一、邻接表存储表示的定义
/*邻接表存储表示的定义*/
typedef struct ArcNode{
int adjvex; //该边所指向的结点的位置
struct ArcNode *nextarc; //指向下一条边的指针
//int info; //该边的相关信息(如权值),这一句用得不多,题目不做特殊要求可以不写
}ArcNode;
typedef struct{
char data; //顶点信息
ArcNode *firstarc; //指向第一条边的指针
}VNode;
typedef struct{
VNode adjlist[maxSize]; //邻接表
int n, e; //顶点数和边数
}AGraph; //图的邻接表类型
二、图的深度优先搜索遍历(Depth-First-Search,DFS)
图的深度优先搜索遍历类似于二叉树的先序遍历。
(1)二叉树的先序遍历
/*二叉树的先序遍历算法*/
void PreOrder(BNode *p){
if(p!=NULL){
Visit(p);
PreOrder(p->lchild);
PreOrder(p->rchild);
}
}