数据结构之 图的存储结构和遍历方式
// 图.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include "malloc.h"#define maxSize 100 typedef struct ArcNode{int adjvex;struct ArcNode *nextNode;int info;}ArcNode;typedef struct VNode{char data;ArcNode * firtsarc;}VNode;typedef struct{VNode adjlist[maxSize];int n,e;}AGraph;void visit_node(AGraph *G,int v){VNode vnode=G->adjlist[v];printf("%s",vnode.data);}//深度优先遍历算法int visit[maxSize];void DFS(AGraph *G,int v){ArcNode *p;visit[v]=1;visit_node(G,v);p=G->adjlist[v].firtsarc;while(p!=NULL){if(visit[p->adjvex]==0)DFS(G,p->adjvex);p=p->nextNode;}}//广度优先遍历算法void BFS(AGraph *G,int v,int visit[maxSize]){ArcNode *p;int que[maxSize],front=0,rear=0;int j;visit[v]=1;visit_node(G,v);rear=(rear+1)%maxSize;que[rear]=v;while(front!=rear){front=(front+1)%maxSize;j=que[front];p=G->adjlist[j].firtsarc;while(p!=NULL){if(visit[p->adjvex]==0){visit[p->adjvex]=1;visit_node(G,p->adjvex);rear=(rear+1)%maxSize;que[rear]=p->adjvex;}}p=p->nextNode;}}int _tmain(int argc, _TCHAR* argv[]){return 0;}