临近期末考了,所以思路来不及整理了,但大家还是可以仿照我的上几篇文章,“先动笔,再代码”的思路还是不变的。
#include<stdio.h>
#include<stdlib.h>
#define MAX_VERTEX_NUM 120
#define FALSE 0
#define TRUE 1
#define YES 1
#define NO 0
int visited[MAX_VERTEX_NUM]={FALSE};
int flag=NO;
typedef struct ArcNode{ //弧
int adjvex; //该弧所指向的顶点的位置
struct ArcNode *nextarc; //指向下一条弧的指针
}ArcNode;
typedef struct VNode{ //顶点
int data; //顶点信息
ArcNode *firstarc; //指向第一条依附该顶点的弧的指针
}VNode;
typedef struct ALGraph{ //图
VNode vertices[MAX_VERTEX_NUM]; //图的各个顶点
int vexnum,arcnum; //图的当前结点数和弧数
}ALGraph;
void graph_initialize(ALGraph* graph){ //图的初始化
graph->vexnum=0;
graph->arcnum=0;
for(int i=0;i<MAX_VERTEX_NUM;i++){
graph->vertices[i].data=0;
graph->vertices[i].firstarc=NULL;
}
}
void arcnode_initialize(ArcNode