1.示例從9開始遍歷
html
2.遍歷過程當中棧和隊列的變化過程
node
1.示例從5開始生成最小生成樹
git
2.生成過程當中最小堆和生成樹的變化過程
算法
1.深度優先遍歷的算法表述以下:數組
1.訪問初始結點v,並標記結點v爲已訪問。網絡
2.查找結點v的第一個鄰接結點w。數據結構
3.若w存在,則繼續執行4,不然算法結束。學習
4.若w未被訪問,對w進行深度優先遍歷遞歸(即把w當作另外一個v,而後進行步驟123)。測試
5.查找結點v的w鄰接結點的下一個鄰接結點,轉到步驟3。.net
2.遍歷過程分析以下:
過程分析:
(1)、首先節點 1 進棧,節點1在棧頂;
(2)、而後節點1出棧,訪問節點1,節點1的孩子節點3進棧,節點2進棧;
(3)、節點2在棧頂,而後節點2出棧,訪問節點2
(4)、節點2的孩子節點5進棧,節點4進棧
(5)、節點4在棧頂,節點4出棧,訪問節點4,
(6)、節點4左右孩子爲空,而後節點5在棧頂,節點5出棧,訪問節點5;
(7)、節點5左右孩子爲空,而後節點3在站頂,節點3出棧,訪問節點3;
(8)、節點3的孩子節點7進棧,節點6進棧
(9)、節點6在棧頂,節點6出棧,訪問節點6;
(10)、節點6的孩子爲空,這個時候節點7在棧頂,節點7出棧,訪問節點7
(11)、節點7的左右孩子爲空,此時棧爲空,遍歷結束。
(一)無向圖鄰接表
(二)有向圖鄰接表
(三)帶權鄰接表
(四)鄰接表的數據結構
public void enqueue(T element) { LinearNode<T> node = new LinearNode<T>(element); if (isEmpty()) head = node; else tail = node; count++; }
修改後的enqueue方法以下:
public void enqueue(T element) { LinearNode<T> node = new LinearNode<T>(element); if (isEmpty()) head = node; else tail.setNext(node); tail = node; count++; }
修改後運行結果以下:
本週無錯題!
努力,努力再努力吧!
代碼行數(新增/累積) | 博客量(新增/累積) | 學習時間(新增/累積) | 重要成長 | |
---|---|---|---|---|
目標 | 5000行 | 30篇 | 400小時 | |
第一週 | 0/0 | 1/1 | 4/4 | |
第二週 | 464/464 | 1/2 | 10/14 | 理解掌握了用數組和鏈表實現棧的方法 |
第三週 | 494/958 | 1/3 | 10/24 | 理解掌握了用數組和鏈表實現隊列的方法 |
第四周 | 1629/2587 | 2/5 | 20/44 | 對用鏈表和數組實現列表進行了學習 |
第五週 | 856/3443 | 2/7 | 15/59 | 較爲深刻的學習了查找和排序方法的實現 |
第六週 | 668/4111 | 1/8 | 20/79 | 學習了鏈式二叉樹的實現 |
第七週 | 900/5011 | 1/9 | 15/99 | 對二叉查找樹進行了較爲深刻的學習 |
第八週 | 1378/6389 | 2/10 | 16/115 | 較爲深刻的學習理解了堆 |
第九周 | 1700/8089 | 1/11 | 12/127 | 圖的理解和實現 |
實際學習時間:12小時
改進狀況:進一步提升學習效率,遇到問題努力去解決!