#include using namespace std; #define MAX 9999 //定义无穷大 /* **Graph 类,用以存放有关图的所有信息 */ class Graph { public: //--------------------------- //param int 初始节点编号 //-------------------------- void ShorestPaths(int); void ShowDist(); Graph(); private: int n; //图的节点个数 int *prev; //存放顶点的前驱节点 int **c; //存放图的邻接矩阵 int *dist; //存放源点到各个顶点的距离 }; /* **节点 */ class MinHeapNode { friend Graph; public: int getI() {return i;} void setI(int ii) { i = ii; } int getLength(){return length;} void setLength(int len) { length = len; } private: int i; //顶点编号 int length; //当前路长 }; /* **最小堆 */ class MinHeap { friend Graph; public: MinHeap(); MinHeap(int); void DeleteMin(MinHeapNode &); void Insert(MinHeapNode); bool OutOfBounds(); private: int length; MinHeapNode *node; }; Graph::Graph() { int wi = 0; int yi = 0; coutn; c