⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 graph.h

📁 数据结构课程设计用C++实现图的遍历等!
💻 H
字号:
#include "Queue.h"          //引用队列文件

#define maxSize  50          //定义图的最大顶点数
#define INFINITY 32767       //定义权值最大值

//定义邻接表中的边结点类型
class EdgeLink{                          
public:
 int weight;   //权值域
 int v2;       //边的尾结点
 EdgeLink* next;//指向下一个边结点的链域
};

//定义最小生成树的存储结构
struct Tree
{
 int x;      //起始边
 int y;      //尾边
};

typedef EdgeLink* Edge;      

struct Node     //定义邻接表类型
{
 char Vertex;      //保存结点的数据
 Edge head;         //引出单链表
};

//定义图类型
class Graph
{
private:
 int matrix[maxSize][maxSize];     //邻接矩阵
 Node *list;                       //邻接表
 int numVertex;                //顶点数
 int numEdge;                //边数
 bool *Mark;                //
 Tree *T;                   //最小生成树

public:
 Graph();               //构造函数
 ~Graph();              //析构函数
 int n() {return numVertex;}          //获取顶点数
 int e() {return numEdge;}   
 bool IsEmpty();                     //判断图是否为空
 Edge first(int pos);              //返回顶点的第一条边
 int first2(int pos);             //返回顶点的第一条边
 Edge next(Edge w);                //返回顶点的下一条边
 bool IsEdge(Edge e);              //判断是否为图中的一条边
 int weight(int ,int);                //返回边的权
 int weight(Edge);                //返回边的权
 void initializtion();            //初始化
 void CreateGraph();           //建立图
 void Graph_traverse(char,int);       //遍历函数
 void DFS(int v);               //深度遍历函数
 void BFS(int start);           //广度遍历函数
 void Prim(int s);               //生成最小生成树函数
 int minVertex(int *D);          //选择最小权值的顶点
 void AddEdgetoT(int,int);         //连接边
};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -