图的储存方式,链式前向星最简单实现方式 (边集数组)
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                图的储存方式,链式前向星最简单实现方式 (边集数组)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.                        
                                對于圖來說,儲存方式無非就是鄰接矩陣、鄰接表,今天看了看鏈式前向星的儲存方式,說來說去不還是鏈表,是一種鏈表的簡單的實現(xiàn)方式,還是比較好理解的。看他們寫個結(jié)構(gòu)體,個人不喜歡,沒必要,也嫌麻煩,換一種更常見的方法。
#define maxn 10010 //定義頂點個數(shù),個人不太習(xí)慣用const int ,因為const int 會開空間,占空間是一個原因,第二是因為C++ MinGW 的原因容易在使用中出問題,被坑不止一次,可能是非洲人int tot=0;//圖儲存空間的假指針 int head[maxn];//表頭,用于存圖的的左端點 int next[maxn*100];//鏈式前向星的精髓,對于一個左端點他的右端點,用鏈式存儲,一會有圖解。 int ege[maxn*100];//儲存邊權(quán) int ver[maxn*100];//儲存右端點void add(int x,int y,int e) //建圖,在圖中添邊 {ver[tot++]=y;next[tot]=head[x];ege[tot]=z;head[x]=tot;//如果是無向圖可以在這里反向添邊,也可以在使用時,反向使用一邊,例如最短路松弛操作 }for(int i=head[x];i;i=next[i]) //遍歷以X為左端點的邊 {int L=x; // 左端點 int R=ver[i]; //右端點int eg=ege[i]; //權(quán)值 }思想很簡單,next放的是一條鏈的偽指針,指向同為x1右端點的下一個坐標,即數(shù)組下標。ege,ver,實在數(shù)組下標中把需要的信息存儲,一個是右端點另一個是權(quán)值,如果數(shù)組下標比成地址,next就是指針,指向這個點的信息的指針。
【邊集數(shù)組】
邊集數(shù)組是由兩個一維數(shù)組構(gòu)成,一個是存儲頂點的信息,另一個是存儲邊的信息,這個邊數(shù)組每個數(shù)據(jù)元素由一條邊的起點下標(begin),終點下標(end)和權(quán)(weight)組成。
所以鏈式前向星,也是一種邊集數(shù)組。
總結(jié)
以上是生活随笔為你收集整理的图的储存方式,链式前向星最简单实现方式 (边集数组)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 绝对惊艳!国产屏加持的一加Ace2边框窄
 - 下一篇: 《流浪地球2》里的“硬核科技” 中国电信