一下是使用邻接表存储表示,实现图的深度优先遍历的示例。
用于遍历的有向图如下:
#include<iostream>
#define MaxVertexNum 6
using namespace std;
//抽象数据类型
typedef char vertextype;
//边结点类型
typedef struct edge
{
int mark;
int no;
struct edge *next;
}edgetype;
//点结点类型
typedef struct
{
int mark;
vertextype vertex;
edgetype *firstArc;
}vertexNode;
//图
typedef struct
{
vertexNode vex[MaxVertexNum];
int n,e;
}ALGraph;
ALGraph G;
edgetype *p;//用于遍历边结点
//构造有向图出边表
void create()
{
G.n=6;
G.vex[0].vertex='a';
G.vex[1]