收藏 分享(赏)

图形资料结构.ppt

上传人:天天快乐 文档编号:1455229 上传时间:2018-07-19 格式:PPT 页数:12 大小:166KB
下载 相关 举报
图形资料结构.ppt_第1页
第1页 / 共12页
图形资料结构.ppt_第2页
第2页 / 共12页
图形资料结构.ppt_第3页
第3页 / 共12页
图形资料结构.ppt_第4页
第4页 / 共12页
图形资料结构.ppt_第5页
第5页 / 共12页
点击查看更多>>
资源描述

1、8.1 圖形資料結構,圖論裡面的問題非常多,解決的技巧也非常豐富,有很多問題是在討論最佳化的問題,像 minimum spanning trees、 matching problems、maximum flow minimum cut problems 等。也有很多圖論問題是 NP-complete,像Travelling Salesperson Problem 等。,第 8章 圖(Graphs),簡單圖的資料結構基本上有兩種表示法,一種是 adjacency matrix,另一種是 adjacency list。,我們在此僅簡單介紹簡單圖(simple graph) 、簡單圖的資料結構與一些

2、問題的處理,如路徑的搜尋、connected components 等。,例:一個簡單圖如下所示。,圖論的表示式如下:,G = (V, E),其中 V 是頂點(vertex)的集合,E 是邊(edge)的集合。V = v0, v1, v2, v3, v4, v5, v6, v7, v8,E = (v0, v1), (v0, v2), (v0, v3), (v0, v6), (v1, v6), (v2, v3), (v2, v4), (v2, v5), (v3, v4), (v3, v6), (v3, v7), (v4, v5), (v4, v7), (v4, v8),簡單圖的資料結構:adja

3、cency matrix。,以一個二維陣列來表示一個簡單圖:,如果頂點有 9 個,相對應的陣列為 M 9 9。 Index 是 0, 1, , 8。 M(i, j) = 1 即頂點 vi 和 vj 有一邊相連(或edge(vi,vj)E ), M 否則 M(i, j) = 0。 M(i, j) = M(j, i)。 M(i, i) = 0。,例:簡單圖的 adjacency matrix 如下所示。,簡單圖的輸入檔案格式:,第一個數 n 代表 vertices 的個數,第二個數 m 代表 edges 的個數。接著有 m 對的整數,每一對整數代表一個 edge。,例:,140 1 0 2 0 3

4、 0 61 6 2 3 2 4 2 53 4 3 6 3 74 5 4 7 4 8,將簡單圖的輸入轉成 adjacency matrix,其程式如下:,scanf(”%d %d”, ,簡單圖的資料結構:adjacency list。,以一個一維陣列來表示一個簡單圖:,如果頂點有 9 個,相對應的陣列為 M 9 。 Index 是 0, 1, , 8。 M(k) 是一條鍊結,鍊結每個 node 儲存的是和頂點 vk 相連的頂點,k = 0, 1, , 8。,例:簡單圖的 adjacency list 如下所示。,將簡單圖的輸入轉成 adjacency list,其程式如下:,Node 的架構如下

5、:,typedef struct node int vertex; struct node *next;Node;,Adjacency list 的架構如下:,Node * listMAXSIZE;,scanf(”%d %d”, ,void addList(Node *L, int i, int j) Node *pn, *cur; pn = (Node*)malloc(sizeof(Node); pn-vertex = j; pn-next = NULL; if(Li = NULL) Li = pn; else cur = Li; while(cur-next != NULL) cur = cur-next; cur-next = pn; / do the same thing for Lj to include a / Node with vertex i。,依輸入檔案的資料與 addList 等的執行順序,陣列 list 的結果如下所示:,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 经营企划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报