簡單的鄰接表

2021-08-17 04:28:31 字數 825 閱讀 4932

鄰接表的使用就類似於鍊錶。鄰接表是用來儲存某個節點所連的所有路徑,以及這條路徑的長度,下乙個節點。所以從乙個節點出發,通過鄰接表我們便可以達到對整個圖的遍歷,接下來讓我們看看鄰接表建立以及遍歷的**:

還不會用製圖工具,我直接用資料來表示吧qaq

我們輸入一組資料:

5 4   //節點、路的數量

1 2 3 //起點、終點,距離

1 3 5

3 4 6

3 5 6

輸出為:我在這裡就只輸出路的終點了,距離什麼的你可以自己輸出下(路的遍歷有點類似於

棧,先建立後遍歷)

1->3->2 //表示節點1有一條1->3和1->2的路

2->1

3->5->4->1

4->3

5->3

你可以自己執行下**哦!

#include#include#include#include#include#include#include#include#include#define n 100005

using namespace std;

int cnt, head[n], u, v, w;

//head的作用是用來儲存某個節點所連線的上一條路

struct node

e[2*n]; //無向所以兩倍

void add_edge(int u, int v, int w)

void search(int u)

}int main()

for(int i = 1; i <=m; i ++)

return 0;

}

鄰接表的使用

這一節我們來複習下前面剛學的鄰接表的使用。給出乙個包含有向圖和無向圖的混合圖 g,圖上有 n 個點和 m 條邊,現在你需要使用鄰接表來儲存該混合圖 g 並按格式輸出鄰接表。輸入格式 輸入第一行為兩個正整數 n 和 m 1 n,m 100 表示混合圖上的 n 個點和 m 條邊。接下來輸入 m 行,每行...

鄰接表轉鄰接矩陣

假設無向圖g採用鄰接矩陣儲存,編寫乙個演算法輸出鄰接表。description 第一行為乙個 整數n,表示頂點的個數 頂點 編號為0到n 1 接下來是為乙個n n大小的 整數矩陣,表示圖的鄰接關係。數字為0表示不鄰接,1表示鄰接。input 輸出圖g的鄰接表。第一行表示頂點0可直接到達的 頂點編號。...

鄰接矩陣與鄰接表

鄰接矩陣表示圖 public class graph private int vertexnum private int edgenum private int g 鄰接矩陣 public graph int vertexnum public void insertedge edge edge pu...