概述 |
實現樹的策略 |
2.樹的數組實現之模擬連接策略:
按照先來先服務的基準連續分配數組位置,每個結點存儲的是每個孩子(可能還有雙親)的數組索引。不過這種方式增長了刪除的成本。
html
3.樹的分析:
在n相對較小時,相對於樹所涉及的成本,樹實現和線性結構之間並不存在特別顯著的差異,可是,隨着n的增長,樹的效率就會愈加引人注意。node
樹的遍歷 |
2.中序遍歷:從根結點開始,訪問結點的左孩子,而後時該結點,再而後時任何剩餘結點。
git
3.後序遍歷:從根結點開始,訪問結點的孩子,而後是該結點。
數組
4.層序遍歷:從根結點開始,訪問每一層的全部結點,一次一層。
數據結構
5.二叉樹的遍歷:二叉樹的遍歷是指從根節點出發,按照某種次序依次訪問二叉樹中全部結點,使得每一個結點被訪問一次且僅被訪問一次。二叉樹的遍歷方式有不少,主要有前序遍歷,中序遍歷,後序遍歷。學習
前序遍歷
前序遍歷的規則是:若二叉樹爲空,則空操做返回,不然先訪問根節點,而後前序遍歷左子樹,再前序遍歷右子樹
測試
中序遍歷
中序遍歷的規則是:若樹爲空,則空操做返回;不然從根節點開始(注意並非先訪問根節點),中序遍歷根節點的左子樹,而後是訪問根節點,最後中序遍歷右子樹。能夠看到,若是是二叉排序樹,中序遍歷的結果就是個有序序列。
.net
後序遍歷
後序遍歷的規則是:若樹爲空,則空操做返回;而後先遍歷左子樹,再遍歷右子樹,最後訪問根結點,在遍歷左、右子樹時,仍然先遍歷左子樹,而後遍歷右子樹,最後遍歷根結點。
設計
二叉樹 |
A Perfect Binary Tree(PBT) is a tree with all leaf nodes at the same depth. All internal nodes have degree 2.
一個深度爲k(>=-1)且有2^(k+1) - 1個結點的二叉樹稱爲完美二叉樹。
3d
3.徹底二叉樹(Complete Binary Tree)
A Complete Binary Tree (CBT) is a binary tree in which every level, except possibly the last, is completely filled, and all nodes are as far left as possible.
徹底二叉樹從根結點到倒數第二層知足完美二叉樹,最後一層能夠不徹底填充,其葉子結點都靠左對齊。
4.完滿二叉樹(Full Binary Tree)
A Full Binary Tree (FBT) is a tree in which every node other than the leaves has two children.
換句話說,全部非葉子結點的度都是2。(只要你有孩子,你就必然是有兩個孩子。)
注:Full Binary Tree又叫作Strictly Binary Tree。
正確使用Markdown語法(加1分)
模板中的要素齊全(加1分)
教材學習中的問題和解決過程, (加3分)
代碼調試中的問題和解決過程, 無問題
感想,體會真切的(加1分)
點評認真,能指出博客和代碼中的問題的(加1分)
20172320
基於評分標準,我給以上博客打分:8分。得分狀況以下:
這周學的有點麻煩,棧還行,就是鏈表有點糊塗。
代碼行數(新增/累積) | 博客量(新增/累積) | 學習時間(新增/累積) | 重要成長 | |
---|---|---|---|---|
目標 | 5000行 | 30篇 | 400小時 | |
第一週 | 0/0 | 1/1 | 8/8 | |
第二週 | 1306/1306 | 1/2 | 20/28 | |
第三週 | 1291/2597 | 1/3 | 18/46 | |
第四周 | 4361/6958 | 2/3 | 20/66 | |
第五週 | 1755/8713 | 1/6 | 20/86 | |
第六週 | 3349/12062 | 1/7 | 20/106 |
計劃學習時間:10小時
實際學習時間:8小時
改進狀況:
(有空多看看現代軟件工程 課件
軟件工程師能力自我評價表)