原理博主就不讲了,毕竟其他人写的很好了,这里写一个实现样例。
无向图+邻接链表+深度优先搜索 如下
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
#define MAX 105
typedef struct ARCNode //边节点
{
int adjvex; //这条边指向的顶点的位置
struct ARCNode * nextarc; //下一个边节点
}ARCNode;
typedef struct Vnode //顶点信息
{
char data; //存放着数据
ARCNode *first; //与它连接的第一条边的信息
}Vnode,Adjlist[MAX]; //一个顶点 很多个顶点
typedef struct
{
Adjlist vertices; //这是一个顶点数组
int vexnum,arcnum; //顶点的数目,边的数目
}ALGraph;
int LocateVex(ALGraph T,char data)
{
for(int i=0;i<T.vexnum;i++)
{
if(T.vertices[i].data==data)