第九周学习
20162310林臻 《程序設計與數據結構》第九周學習總結
教材學習內容總結
- 堆的學習及其方法的應用
堆排序利用堆的基本特征對一組元素進行排序
教材學習中的問題和解決過程
- 問題1:堆和二叉樹有什么區別呢
- 問題1解決方案:
- 1、堆是一個完全二叉樹,并且每個結點的值都大于或等于其左右孩子結點的值,具有n個結點的堆,其深度即為堆所對應的完全二叉樹的深度log(n).
- 2、在二叉排序樹中,某結點的右孩子結點的值一定大于該結點的左孩子結點的值;在堆中卻不一定,堆只是限定了某結點的值大于(或小于)其左右孩子結點的值,但沒有限定左右孩子結點之間的大小關系。
- 3、 在二叉排序樹中,最小值結點是最左下結點,其左指針為空;最大值結點是最右下結點,其右指針為空。在大根堆中,最小值結點位于某個葉子結點,而最大值結點是大根堆的堆頂(即根結點)。
4、二叉排序樹是為了實現動態查找而設計的數據結構,它是面向查找操作的,在二叉排序樹中查找一個結點的平均時間復雜度是O(log n);堆是為了實現排序而設計的一種數據結構,它不是面向查找操作的,因而在堆中查找一個結點需要進行遍歷,其平均時間復雜度是O(n)。
- 問題2:優先隊列的原理以及實現
問題2解決方案:網絡上查找到了很詳細的信息,博客鏈接
代碼托管
上周考試錯題總結
1、雖然所有節點在完全相同的層次上的樹是平衡的,但并不是所有的平衡樹都具有這個屬性。 所以選擇A并不是最好的答案。 選項D是最好的答案,因為它正確地定義了一棵平衡樹
2、完整的二叉樹正好有2n個葉子,因為每個葉子都在相同的高度,每個內部節點恰好有2個孩子
3、水平順序遍歷按照距離根的距離順序訪問樹的元素。
4、后序遍歷訪問右側子樹,然后訪問左側子樹,然后訪問根。 所以,根始終是最后一個被訪問的元素。
| 目標 | 5000行 | 30篇 | 400小時 | |
| 第一周 | 200/200 | 1/1 | 20/20 | |
| 第二周 | 200/200 | 1/1 | 20/20 | |
| 第三周 | 200/200 | 1/1 | 22/22 | |
| 第四周 | 1000/1000 | 1/1 | 30/30 | |
| 第五周 | 1000/1000 | 1/1 | 22/22 | |
| 第六周 | 1000/1000 | 1/1 | 30/30 | |
| 第七周 | 1000/1000 | 1/1 | 20/20 | |
| 第八周 | 1000/1000 | 1/1 | 20/20 | |
| 第九周 | 1000/1000 | 1/1 | 20/20 |
轉載于:https://www.cnblogs.com/shuailinzhen/p/7787949.html
總結
- 上一篇: flatpickr功能强大的日期时间选择
- 下一篇: 大牛——心声