一个没有回路的图形叫做树.PPTVIP

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一个没有回路的图形叫做树

* * * * * * * * * * * * 第9章 基本圖論 講師:郭育倫 d95037@csie.ntu.edu.tw 演算法導論,探矽工作室 摘要 圖形專有名詞 圖形資料結構 相鄰矩陣 相鄰串列 圖形搜尋演算法 深度優先搜尋 廣度優先搜尋 演算法導論,探矽工作室 本章學習重點 圖形專有名詞 圖形資料結構 圖形搜尋演算法 演算法導論,探矽工作室 圖形 在日常生活中,我們常常將一些複雜的觀念或問題使用圖形來表達,例如:在進行系統分析、電路分析、電話佈線和工作排程等。因為圖形化可以讓人更容易了解問題的本質。 演算法導論,探矽工作室 名詞解釋 圖形結構很像樹狀結構,其不同的地方是圖形結構節點之間沒有父子關係。 圖形是由節點和邊線所組成的有限集合,通常用G = (V,E) 來表示,其中V是所有節點形成的集合,而E代表所有由邊線形成的集合。 演算法導論,探矽工作室 路徑與連接圖 從節點X到Y所經過的節點串列,稱為X到Y的路徑,而經過的邊數則為該路徑之長度。 如果一條路徑沒有經過重複的節點,又稱為簡單路徑。當一條簡單路徑的起訖都是同一節點的話,就形成一個迴路。 假如每個節點都存在一條路徑通往其他任一節點,則稱該圖形為一連接圖。相對的,一個非連接的圖形,則是由多個連接的子圖形所組成,而這些子圖又稱為連接元件。 一個沒有迴路的圖形叫做樹。森林是由一群不相連的樹所組成。 演算法導論,探矽工作室 完全圖 如果一個圖形包含了V個節點,那此圖可能有0到V(V-1)/2 條邊線。因此當該圖形具有V(V-1)/2 條邊線時,稱為完全圖。如果該圖邊數少於V (logV) ,就是一個稀疏圖形,反之則為茂密圖。 一棵包含V個節點的樹,剛好只會有V-1條邊線。當我們隨意加上一條邊線,此圖形一定會形成迴路,而不再是一個樹狀結構。 演算法導論,探矽工作室 有向圖與無向圖 圖形依其邊線是否具方向性又可區分為有向圖和無向圖兩種。 邊線除了代表兩個節點間的連接性外,還可以賦予更多資訊像是距離或者成本等等。這些邊線所含的特殊資訊,又稱為權值,其可組成一個加權圖形。 加權有向圖通常被稱為網路。 演算法導論,探矽工作室 相鄰矩陣 相鄰矩陣使用一個二維陣列來記錄邊線資訊。當邊線(x, y)存在時,adj[x][y]=1,否則adj[x][y]=0。注意,因為這個範例是無向圖形,所以在這個矩陣中使用兩個位置表示一條邊線的存在,也就是說adj[x][y]=adj[y][x]。 演算法導論,探矽工作室 相鄰串列 相鄰串列使用一維陣列adj[V],具有V個指標。adj[x]所指的節點串列,代表連接節點x的所有節點。相較於相鄰陣列需要的空間O(V2),相鄰串列只需要O(V+E)。 演算法導論,探矽工作室 圖形搜尋 所謂圖形搜尋是指有系統地依循邊線,拜訪圖形的節點。透過圖形搜尋演算法可以發掘該圖形的結構,許多圖形演算法都是從取得圖形結構的資訊開始。因此,搜尋圖形的技巧可說是圖形演算法的核心部分。 深度優先搜尋 廣度優先搜尋 演算法導論,探矽工作室 深度優先搜尋 深度優先即拜訪過一個節點後,如果該節點還有連結其他節點,就繼續訪問下一個節點,直到沒有連接的節點或者遇到已訪問過的節點為止。接著,再回溯到前一個節點繼續依深度優先的原則追蹤其他相鄰節點。 深度優先搜尋與樹的前序追蹤法類似,都是用遞迴的搜尋方法。 演算法導論,探矽工作室 深度優先搜尋範例 演算法導論,探矽工作室 深度優先搜尋分析 在深度優先搜尋法中,遞迴雖然屬於比較直覺的實作方式,然而有些系統卻不支援遞迴,這時候就需要改用非遞迴的方式。任何遞迴的演算法都可以利用堆疊將其改成非遞迴方式。 演算法導論,探矽工作室 廣度優先搜尋 廣度優先搜尋是先拜訪完某節點其所有相鄰節點後,再深入下一層繼續探索。為了實現這種類似地毯式搜索的演算法,我們可以利用佇列來儲存尚未拜訪的節點。因為佇列有先進先出的特性,所以可確保上一層的節點都訪問完,才會處理到下一層的節點。 演算法導論,探矽工作室 廣度優先搜尋範例 演算法導論,探矽工作室 廣度優先搜尋分析 廣度優先搜尋的結果可以形成一廣度優先搜尋樹。其拜訪節點的順序好比是對此搜尋樹進行層級訪問。第一層級的相鄰節點將會優先被處理。在檢驗第一層級的節點時,第二層級的節點也會放進佇列裡。也就是當所有第一層級的節點都處理完後,才會繼續處理第二層級的節點,以此類推,直到所有節點都被拜訪過為止。 演算法導論,探矽工作室 關節點 圖形的關節點其定義為,當該節點從連接的圖形中移除後,會導致整個圖形分裂成數個連接元件。 一個圖形如果不存在關節點,則表示該圖形具有雙連通性,即任意兩個節點存在兩條以上的路徑。 演算法導論,探矽工作室 關節點範例… 下列圖形包括了四個關節點: {A, H, G, J}。移走

文档评论(0)

zhuwo + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档