第六章小结
本章,我們學習了圖。
首先是圖(GRAPH)的定義
一種非線性數據結構,由有窮、非空的點集V(G)和邊集E(G)組成。當G中的每條邊有方向時,稱G為有向圖,有向邊(用一對尖括號<a,b>)又稱為弧,起始頂點被稱為弧尾,終止頂點被稱為弧頭,每條邊無方向時(用一對括號表示(a,b)和(b,a)一樣),被稱為無向圖。
圖的存儲方式
1.鄰接矩陣(二維數組存儲)
?
void creat(vexList GV, adjmatrix GA, int n,int e){int i,j,k,w;cout << "輸入"<<n<<"個頂點的值:"<<endl;//初始化頂點數組for(int i = 0; i < n; i++) { cin>>GV[i];}//初始化鄰接矩陣 for(int i = 0; i < n; i++) for(int j = 0; j < n; j++){if(i==j) GA[i][j] = 0;else GA[i][j] = maxValue;}//建立鄰接數組 cout << "輸入"<<e<<"條邊:"<<endl;for(int k = 0; k < e; k++){cin >> i >> j >>w;GA[i][j] =GA[j][i] = w;}}2.鄰接表存儲
3.編輯數組
然后是本章的重點
鄰接矩陣表示法的特點:
優點是容易實現圖的操作。
缺點是空間效率為O(n2)。對稀疏圖浪費空間。
?
圖的遍歷
DFS:從圖中某個頂點V0 出發,訪問此頂點,然后依次從V0的各個未被訪問的鄰接點出發深度優先搜索遍歷圖,直至圖中所有和V0有路徑相通的頂點都被訪問到
BFS:在訪問了起始點v之后,依次訪問 v 的鄰接點; 然后再依次訪問這些頂點中未被訪問過的鄰接點; 直到所有頂點都被訪問過為止。
在這周我們還學習了求最短路徑的方法,我覺得很有意思。
分別是Dijkstra算法和Floyd算法。
?
對于上次的目標,首先敲代碼的積極性有提高,但pta的作業還是卡著ddl完成的,然后就是上課有時候會有點走神,導致有些小細節要課后去問同學才行,就還是希望自己能夠把學習當做樂趣而不是工作。
ps:圖片來自CSDN
?
轉載于:https://www.cnblogs.com/Lnnnn/p/10890873.html
總結
- 上一篇: 车站计算机联锁系统的仿真设计,车站计算机
- 下一篇: 计算机组成实验v代表什么,2014计算机