最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python關(guān)于拓?fù)渑判蛑R點(diǎn)講解

 更新時(shí)間:2021年01月04日 15:39:45   作者:runoob  
在本篇文章里小編給大家分享了一篇關(guān)于Python關(guān)于拓?fù)渑判蛑R點(diǎn)講解內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。

對一個(gè)有向無環(huán)圖(Directed Acyclic Graph簡稱DAG)G進(jìn)行拓?fù)渑判颍菍中所有頂點(diǎn)排成一個(gè)線性序列,使得圖中任意一對頂點(diǎn)u和v,若邊(u,v)∈E(G),則u在線性序列中出現(xiàn)在v之前。

通常,這樣的線性序列稱為滿足拓?fù)浯涡?Topological Order)的序列,簡稱拓?fù)湫蛄?。簡單的說,由某個(gè)集合上的一個(gè)偏序得到該集合上的一個(gè)全序,這個(gè)操作稱之為拓?fù)渑判颉?/p>

在圖論中,由一個(gè)有向無環(huán)圖的頂點(diǎn)組成的序列,當(dāng)且僅當(dāng)滿足下列條件時(shí),稱為該圖的一個(gè)拓?fù)渑判颍ㄓ⒄Z:Topological sorting):

  • 每個(gè)頂點(diǎn)出現(xiàn)且只出現(xiàn)一次;
  • 若A在序列中排在B的前面,則在圖中不存在從B到A的路徑。

實(shí)例代碼

from collections import defaultdict 
 
class Graph: 
 def __init__(self,vertices): 
  self.graph = defaultdict(list) 
  self.V = vertices
 
 def addEdge(self,u,v): 
  self.graph[u].append(v) 
 
 def topologicalSortUtil(self,v,visited,stack): 
 
  visited[v] = True
 
  for i in self.graph[v]: 
   if visited[i] == False: 
    self.topologicalSortUtil(i,visited,stack) 
 
  stack.insert(0,v) 
 
 def topologicalSort(self): 
  visited = [False]*self.V 
  stack =[] 
 
  for i in range(self.V): 
   if visited[i] == False: 
    self.topologicalSortUtil(i,visited,stack) 
 
  print (stack) 
 
g= Graph(6) 
g.addEdge(5, 2); 
g.addEdge(5, 0); 
g.addEdge(4, 0); 
g.addEdge(4, 1); 
g.addEdge(2, 3); 
g.addEdge(3, 1); 
 
print ("拓?fù)渑判蚪Y(jié)果:")
g.topologicalSort()

執(zhí)行以上代碼輸出結(jié)果為:

拓?fù)渑判蚪Y(jié)果:

[5, 4, 2, 3, 1, 0]

實(shí)例擴(kuò)展:

def toposort(graph):
 in_degrees = dict((u,0) for u in graph) #初始化所有頂點(diǎn)入度為0
 vertex_num = len(in_degrees)
 for u in graph:
  for v in graph[u]:
   in_degrees[v] += 1  #計(jì)算每個(gè)頂點(diǎn)的入度
 Q = [u for u in in_degrees if in_degrees[u] == 0] # 篩選入度為0的頂點(diǎn)
 Seq = []
 while Q:
  u = Q.pop()  #默認(rèn)從最后一個(gè)刪除
  Seq.append(u)
  for v in graph[u]:
   in_degrees[v] -= 1  #移除其所有指向
   if in_degrees[v] == 0:
    Q.append(v)   #再次篩選入度為0的頂點(diǎn)
 if len(Seq) == vertex_num:  #如果循環(huán)結(jié)束后存在非0入度的頂點(diǎn)說明圖中有環(huán),不存在拓?fù)渑判?
  return Seq
 else:
  print("there's a circle.")
G = {
 'a':'bce',
 'b':'d',
 'c':'d',
 'd':'',
 'e':'cd'
}
print(toposort(G))

輸出結(jié)果:

['a', 'e', 'c', 'b', 'd']

到此這篇關(guān)于Python關(guān)于拓?fù)渑判蛑R點(diǎn)講解的文章就介紹到這了,更多相關(guān)Python 拓?fù)渑判騼?nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python 使用 Redis 作為緩存的操作方法

    Python 使用 Redis 作為緩存的操作方法

    在現(xiàn)代Web應(yīng)用和數(shù)據(jù)密集型服務(wù)中,使用Redis作為緩存可以提升性能和響應(yīng)速度,Redis是一個(gè)高性能的內(nèi)存中數(shù)據(jù)結(jié)構(gòu)存儲系統(tǒng),支持多種數(shù)據(jù)結(jié)構(gòu)如字符串、哈希、列表等,并提供持久性和分布式支持,本文給大家介紹Python 使用 Redis 作為緩存的操作方法,感興趣的朋友一起看看吧
    2024-10-10
  • python游戲開發(fā)的五個(gè)案例分享

    python游戲開發(fā)的五個(gè)案例分享

    本文給大家分享了作者整理的五個(gè)python游戲開發(fā)的案例,通過具體設(shè)計(jì)思路,代碼等方面詳細(xì)了解python游戲開發(fā)的過程,非常的詳細(xì),希望大家能夠喜歡
    2020-03-03
  • python開發(fā)之函數(shù)定義實(shí)例分析

    python開發(fā)之函數(shù)定義實(shí)例分析

    這篇文章主要介紹了python開發(fā)之函數(shù)定義方法,以實(shí)例形式較為詳細(xì)的分析了Python中函數(shù)的定義與使用技巧,需要的朋友可以參考下
    2015-11-11
  • python獲取txt文件詞向量過程詳解

    python獲取txt文件詞向量過程詳解

    這篇文章主要介紹了python獲取txt文件詞向量過程詳解,如何讀取完整的大文件,而不會出現(xiàn)內(nèi)存不足memery error等問題,將讀取出來的文件,保存為npy文件,根據(jù)詞找到對應(yīng)的向量,需要的朋友可以參考下
    2019-07-07
  • Python3匿名函數(shù)用法示例

    Python3匿名函數(shù)用法示例

    這篇文章主要介紹了Python3匿名函數(shù)用法,結(jié)合實(shí)例形式分析了Python3匿名函數(shù)的概念、功能、使用方法及相關(guān)操作注意事項(xiàng),代碼中備有較為詳盡的注釋說明便于理解,需要的朋友可以參考下
    2018-07-07
  • Python數(shù)據(jù)可視化之畫圖

    Python數(shù)據(jù)可視化之畫圖

    今天小編就為大家分享一篇關(guān)于Python數(shù)據(jù)可視化之畫圖,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • Gradio構(gòu)建交互式Python應(yīng)用使用示例詳解

    Gradio構(gòu)建交互式Python應(yīng)用使用示例詳解

    這篇文章主要為大家介紹了Gradio構(gòu)建交互式Python應(yīng)用使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • 用Python寫王者榮耀刷金幣腳本

    用Python寫王者榮耀刷金幣腳本

    今天給大家?guī)淼氖怯肞ython語言寫一個(gè)關(guān)于手游王者榮耀刷金幣的腳本,有興趣的朋友參考學(xué)習(xí)下。
    2017-12-12
  • 使用python判斷你是青少年還是老年人

    使用python判斷你是青少年還是老年人

    今天來給大家講講python中最基本的 if 條件語句,這幾乎是所有編程語言中都存在的語句,只是語法結(jié)構(gòu)稍有不同。這篇文章給大家分享使用python判斷你是青少年還是老年人,感興趣的朋友一起看看吧
    2018-11-11
  • Python 玩轉(zhuǎn)圖像格式轉(zhuǎn)換操作

    Python 玩轉(zhuǎn)圖像格式轉(zhuǎn)換操作

    這篇文章主要介紹了Python 玩轉(zhuǎn)圖像格式轉(zhuǎn)換方式,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03

最新評論

鄂尔多斯市| 潢川县| 阿合奇县| 彭山县| 长寿区| 舞钢市| 岳阳县| 库尔勒市| 台南市| 蓬溪县| 绥滨县| 忻州市| 区。| 桂林市| 鞍山市| 沅陵县| 维西| 舟曲县| 安陆市| 类乌齐县| 绿春县| 绍兴县| 濮阳市| 旬阳县| 扎鲁特旗| 柘荣县| 宁阳县| 谢通门县| 辛集市| 丰台区| 惠东县| 甘泉县| 通辽市| 瑞丽市| 偃师市| 高唐县| 衡水市| 壤塘县| 交城县| 佛山市| 台东县|