#pragma once
#include<iostream>
#include<queue>
using namespace std;
#define Vnum 10
typedef int DATA;
/*邻接表存储图*/
typedef struct list //存储链表的结构
{
int weight; //边
int index; //顶点数组的索引
struct list *nextList; //链表的下一个节点
}LIST;
typedef struct vex
{
DATA data; //顶点需要存储的数据
LIST * firstList; //指向链表的第一个节点
} VEX;
class CGraph
{
private:
bool visited[Vnum]; //标记索引为Vnum的顶点是否被访问
VEX vex[Vnum]; //以邻接表的形式存储整个图的信息
public:
CGraph() //图对象在建立的时候的自动初始化
{
for(int i =0; i < Vnum; i++)
{
vex[i] = {};
visited[i] = false;
}
}
void CreateGraph() //图的创建,即邻接表的创建
{
for(int i = 0; i < Vnum; i++)
{
int v = 0, weight = 0;
vex[i].firstList = new LIST;
LIST *temp = vex[i].firstList;
cout << "输入与第" << i << "个顶点相连的顶点与对应边" << endl;
cin >> v >> weight;
temp->index = v;
temp->weight = weight;
while( v != -1)
{
cout << "再次输入与第" << i << "个顶点相连的顶点与对应边"