每乙個頂點後面就是一條鍊錶,每個頂點都存在陣列裡。
以這張圖為例
結構如下
執行截圖
結構體定義
//邊表結點
typedef struct edgenode edgenode;
//頂點表結點
typedef struct vertexnode vertexnode, adjlist[100];
//集合
typedef struct graphadjlist;
完整程式
#include using namespace std;
//邊表結點
typedef struct edgenode edgenode;
//頂點表結點
typedef struct vertexnode vertexnode, adjlist[100];
//集合
typedef struct graphadjlist;
class adjacencylist ;
void adjacencylist::createalgraph(graphadjlist *g)
//建立邊表(頭插法)
for (k = 0; k < g->numedges; k++)
}void adjacencylist::test()
void adjacencylist::showalgraph(graphadjlist *g)
cout<
}}int main()
資料結構 鄰接多重表
上一節總結了有向圖的另外一種鏈式儲存結構 十字鍊錶,該節繼續總結無向圖的另一種鏈式儲存結構。鄰接表雖然已經能夠很好地表示無向圖了,但是無向圖訪問或者刪除一條邊 vi,vj 時需要同時訪問兩個鍊錶i和j並分別找到對應的邊結點,這給針對圖的邊的操作 標記或刪除 帶來不便利。鄰接多重表因此而演變過來的。鄰...
資料結構 鍊錶 鄰接表
在講解這個內容之前,先來回憶陣列能夠完成哪些操作 1 任意訪問乙個元素,時間複雜度為o 1 o 1 o 1 2 刪除乙個元素,要移動此後的所有元素,時間複雜度為o n o n o n 3 在任意位置之後增添乙個元素,要移動此後的所有元素,時間複雜度為o n o n o n 但如果我們的問題並不需要訪...
資料結構之DFS(鄰接表版)
圖的遍歷 是指從圖中的任一頂點出發,對圖中的所有頂點訪問一次且只訪問一次。圖的遍歷是圖的基本操作之一,很多需要對圖中每個頂點依次進行的操作都可以在遍歷中完成。圖的遍歷通常有深度優先搜尋和廣度優先搜尋。深度優先搜尋 depth first search 深度優先搜尋的基本思想如下 1 從圖中某個頂點v...