了解鄰接表

2021-10-21 17:30:20 字數 1296 閱讀 1452

在本教程中,您將學習什麼是鄰接表。此外,您還將在c中找到鄰接表的示例。

鄰接列表將圖表示為鍊錶陣列。

陣列的索引表示乙個頂點,其鏈結鍊錶中的每個元素表示與該頂點形成邊的其他頂點。

鄰接表表示法

圖及其等價的鄰接列表如下所示:

鄰接列表在儲存方面是有效的,因為我們只需要儲存邊的值。對於具有數百萬個頂點和邊的稀疏圖,這意味著節省了大量空間。

鄰接表結構

最簡單的鄰接表需要乙個儲存頂點的節點資料結構和乙個組織節點的圖資料結構。

我們緊貼圖的基本定義 - 頂點和邊的集合。為了簡單起見,我們使用了乙個無標記的圖,而不是乙個有標記的圖,即頂點由它們的索引 0,1,2,3 來標識。

讓我們在這裡深入研究一下資料結構。

struct node

;struct graph

;

不要讓 struct node** adjlists 嚇到你。

我們要說的是我們想要儲存乙個指向 struct node* 的指標。這是因為我們不知道圖有多少個頂點,所以我們不能在編譯時建立乙個鍊錶陣列。

c示例

// adjascency list representation in c

#include

#include

struct node

;struct node*

createnode

(int);

struct graph

;// create a node

struct node*

createnode

(int v)

// create a graph

struct graph*

createagraph

(int vertices)

// add edge

void

addedge

(struct graph* graph,

int s,

int d)

// print the graph

void

printgraph

(struct graph* graph)

printf

("\n");

}}intmain()

參考文件

[1]parewa labs pvt. ltd.adjacency list[eb/ol].

了解鄰接矩陣

在本教程中,您將學習什麼是鄰接矩陣。此外,您還將在c中找到鄰接矩陣的示例。鄰接矩陣是將圖g 表示為布林矩陣的一種方法。鄰接矩陣表示法 矩陣的大小是 vxv,其中 v 是圖的頂點數,根據頂點 i 到頂點 j 是否有邊,條目 aij 的值為1或0。鄰接矩陣示例 下圖顯示了乙個圖形及其等效的鄰接矩陣。對於...

鄰接表轉鄰接矩陣

假設無向圖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...