国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

圖論(一)------圖的表示

2019-11-14 17:43:39
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

一個(gè)圖(graph)G=(V,E)是由頂點(diǎn)集V和邊集E組成。每一條邊就是一個(gè)頂點(diǎn)對(duì)(v,w),其中v,w∈V。如果點(diǎn)對(duì)是有序的,那么圖就是有向圖。

圖中的一條路徑path是一個(gè)頂點(diǎn)序列w1,w2,w3,...,wk,使得(wi,wi+1)∈E,1<=i<=k。路徑的長(zhǎng)是該路徑上的邊數(shù)。

     

如果在一個(gè)無(wú)向圖中從每一個(gè)頂點(diǎn)到其它頂點(diǎn)都存在一條路徑,則稱(chēng)該路徑是連通的。具有這種性質(zhì)的有向圖是強(qiáng)連通的。有向圖的弧上去掉方向所形成

的圖是連通的,則該有向圖為弱連通的。

圖的簡(jiǎn)單二維數(shù)組表示

用鄰接矩陣表示,對(duì)于每條邊(u,v),設(shè)置A[u][v]=1,否則為0.如果邊有個(gè)權(quán),則設(shè)置數(shù)組元素為權(quán)??臻g需求為Θ(V2)。

若圖很稠密(邊很多),則鄰接矩陣是合適的表示方法。如果很稀疏,更好的解決方法是鄰接表。

圖的鄰接表表示

對(duì)于每一個(gè)頂點(diǎn),用一個(gè)表存放所有鄰接的頂點(diǎn),此時(shí)的空間需求為O(E+V)。

class Vertex(object):    def __init__(self,key):        self.id=key        self.adj={}    def addNeighbor(self,nbr,weight=0):        self.adj[nbr]=weight    def getNeighbors(self):        return self.adj.keys()    def getId(self):        return self.id    def getWeight(self,key):        return self.adj[key]class Graph(object):    def __init__(self):        self.vertexlist={}        self.size=0    def addVertex(self,key):        vertex=Vertex(key)        self.vertexlist[key]=vertex        self.size+=1        return vertex    def getVertex(self,key):        return self.vertexlist.get(key)    def __contains__(self,key):        if key in self.vertexlist:            return True        else:            return False    def addEdge(self,f,t,weight=0):        if f not in self.vertexlist:            self.addVertex(f)        if t not in self.vertexlist:            self.addVertex(t)        self.vertexlist[f].addNeighbor(self.vertexlist[t],weight)    def getVertices(self):        return self.vertexlist.keys()    def __iter__(self):        return iter(self.vertexlist.values())

  


發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 绥芬河市| 当雄县| 东阿县| 扎兰屯市| 中宁县| 新晃| 隆安县| 剑阁县| 富蕴县| 庄浪县| 雷波县| 栖霞市| 股票| 柳林县| 白玉县| 杭锦旗| 山西省| 方城县| 柳江县| 卫辉市| 平南县| 邵阳县| 武隆县| 清远市| 定远县| 元江| 仲巴县| 合山市| 商河县| 铜梁县| 抚松县| 荥经县| 高平市| 丹寨县| 岳普湖县| 乌兰察布市| 民乐县| 阿拉善盟| 徐水县| 白朗县| 象山县|