我没有写思路,学到这里连着都看不懂的话,还是不要学的好
#include <stdio.h>
#define MaxVex 100 //最大顶点数
#define INFINITY 65535 //表示∞
#define TRUE 1
#define FALSE 0
typedef char VertexType; //顶点类型
typedef int EdgeType; //权值类型
typedef int Bool;
Bool visited[MaxVex];
typedef struct {
VertexType vexs[MaxVex]; //顶点数组
EdgeType arc[MaxVex][MaxVex]; //邻接矩阵
int numVertexes, numEdges; //当前图中的结点数以及边数
}MGraph;
//广度优先遍历需要的循环队列
typedef struct {
int data[MaxVex];
int front, rear;
}Queue;
/****************************************/
//队列的相关操作
//初始化
void InitQueue(Queue *Q)
{
Q->front = Q->rear = 0;
}
//入队
void EnQueue(Queue *Q, int e)
{
if ((Q->rear+1)%MaxVex == Q->front)
return ;
Q->data[Q->rear] = e;
Q->rear = (Q->rear+1)%MaxVex;
}
//判空
Bool
C语言实现图的邻接矩阵和BFS DFS
最新推荐文章于 2024-05-05 15:22:58 发布