圖--十字鏈表-筆記
阿新 • • 發佈:2018-08-15
其中 order borde body div weight idt dlink span
參考來源:大話數據結構。
對於有向圖來說,鄰接鏈表無法同時考慮到邊的入度和出度問題,故有了十字鏈表這種數據結構。
頂點表 :
data | firstin | firstout |
其中firstin表示入邊表頭指針,表示該頂點的入邊表中的第一個結點,firstout表示出邊表頭指針,指向該頂點的出邊表的第一個結點。
邊表:
tailvex | headvex | headlink |
taillink |
tailvex表示該邊的起點在頂點表中的下標, headvex表示該邊的終點在頂點表中的下標。headlink表示以headvex為終點的一系列邊,taillink表示以tailvex為起點的一系列邊。
代碼如下:
/*********十字鏈表***********/ /************邊表*************/ class EdgeNode { public: int tailvex; //該邊的起點 int headvex; //該邊的終點 int weight; //邊的權重 EdgeNode *headlink = NULL; //入邊表指針域 EdgeNode *taillink = NULL; //出邊表指針域 EdgeNode(int _tail, int _head, int _weight) : tail(_tail), head(_head), weight(_weight) {}; };/**********頂點表*******/ class VertexNode { public: int data; EdgeNode *firstin; //入度 EdgeNode *firstout;//出度 //int pValue; //int dist = infty; };
圖--十字鏈表-筆記