二叉樹學習筆記(未完待續)

2021-09-29 10:54:39 字數 1133 閱讀 3204

二叉樹學習筆記(未完待續)。

it老兵驛站。

昨天(2019-11-07)複習紅黑樹,發現紅黑樹和二叉樹密不可分,所以這裡再複習一下二叉樹。

在大學的時候,這塊我很認真地學習了一遍。

大學畢業後,因為找工作的緣故,我又多次對這塊進行過認真的學習,對於這塊,心裡還是比較清楚的。

現在這個筆記呢,既複習一下知識和概念,也回顧總結一下很多經歷過的事情。

參考維基百科

二叉查詢樹(英語:binary search tree),也稱為二叉搜尋樹、有序二叉樹(ordered binary tree)或排序二叉樹(sorted binary tree),是指一棵空樹或者具有下列性質的二叉樹:

若任意節點的左子樹不空,則左子樹上所有節點的值均小於它的根節點的值;

若任意節點的右子樹不空,則右子樹上所有節點的值均大於它的根節點的值;

任意節點的左、右子樹也分別為二叉查詢樹;

沒有鍵值相等的節點。

對於定義,這裡面會隱含一些理解上需要打通的問題,例如樹的高度和葉子的關係,這也是經常出現在面試題裡面的乙個問題。今天事情有點多,先不做這塊的總結了。

二叉樹的遍歷分為前序遍歷、中序遍歷、後序遍歷,這個前中後是以輸出根結點關鍵字的順序來區別的。

note:二叉樹的遍歷涉及到了乙個很關鍵的計算機演算法,遞迴演算法,對這個演算法,原本一直有點畏懼,一直沒有搞清楚。在05年去opentv面試的時候,被這個演算法給難住了,痛定思痛,那次面試失利之後,對這個演算法進行了深度的學習和研究,後來在實際工作中,在合理的時機,也嘗試使用了這個演算法,現在算是基本掌握了,所以很多事情,躲是躲不開的。

每個結點的內容(摘抄自《演算法導論》,這裡用的是「結點」):

其中每個結點就是乙個物件。除了 key 和衛星資料之外,每個結點還包含屬性 left、right 和 p,它們分別指向結點的左孩子、右孩子和雙親。如果某個孩子結點和父結點不存在,則相應屬性的值為 nil。

發現《演算法導論》這裡居然印錯了,不知道家裡面那個紙版的,是不是也是這樣,這是第三版了,還會有這樣的錯誤,不應該。

今天暫時寫到這裡,未完待續…

Shell學習筆記 未完待續

一 cat的用法總結 cat是乙個簡單而通用的命令,用來顯示內容,建立檔案,還可以用來顯示控制字元 但是在使用cat是請注意,它不會在檔案分頁符處停下來,它會一下顯示完整個檔案。如果希望每次顯示一頁,可以使用more或者cat命令的輸出通過管道傳遞到另外乙個具有分頁功能的命令中 cat myfile...

MySQL學習筆記(未完待續 )

二 儲存引擎 索引是在儲存引擎層實現的,而不是在伺服器層實現的,所以不同儲存引擎具有不同的索引型別和實現。b 樹是大多數mysql 儲存引擎的預設索引型別。因為不再需要進行全表掃瞄 類似於漢語字典中一頁一頁的去查詢乙個漢字 只需要對樹進行搜尋即可 類似於利用漢語字典中的目錄頁去快速定位乙個漢字,索引...

FasttDFS學習筆記(未完待續。。。)

fastdfs client 客戶 ke lai en te storage 儲存 si dong rui zi tracker 追蹤者 chuan ke 英語不好見笑。奸笑 什麼是fastdfs 2.fastdfs架構 trecker server 作用是負載均衡和排程,通過trecker ser...