二叉树学习笔记(未完待续)
摘要
二叉樹學習筆記(未完待續)。
博客
IT老兵驛站。
前言
昨天(2019-11-07)復習紅黑樹,發現紅黑樹和二叉樹密不可分,所以這里再復習一下二叉樹。
在大學的時候,這塊我很認真地學習了一遍。
大學畢業后,因為找工作的緣故,我又多次對這塊進行過認真的學習,對于這塊,心里還是比較清楚的。
現在這個筆記呢,既復習一下知識和概念,也回顧總結一下很多經歷過的事情。
正文
定義
參考維基百科
二叉查找樹(英語:Binary Search Tree),也稱為二叉搜索樹、有序二叉樹(ordered binary tree)或排序二叉樹(sorted binary tree),是指一棵空樹或者具有下列性質的二叉樹:
若任意節點的左子樹不空,則左子樹上所有節點的值均小于它的根節點的值;
若任意節點的右子樹不空,則右子樹上所有節點的值均大于它的根節點的值;
任意節點的左、右子樹也分別為二叉查找樹;
沒有鍵值相等的節點。
對于定義,這里面會隱含一些理解上需要打通的問題,例如樹的高度和葉子的關系,這也是經常出現在面試題里面的一個問題。今天事情有點多,先不做這塊的總結了。
遍歷
二叉樹的遍歷分為前序遍歷、中序遍歷、后序遍歷,這個前中后是以輸出根結點關鍵字的順序來區別的。
note:二叉樹的遍歷涉及到了一個很關鍵的計算機算法,遞歸算法,對這個算法,原本一直有點畏懼,一直沒有搞清楚。在05年去OpenTV面試的時候,被這個算法給難住了,痛定思痛,那次面試失利之后,對這個算法進行了深度的學習和研究,后來在實際工作中,在合理的時機,也嘗試使用了這個算法,現在算是基本掌握了,所以很多事情,躲是躲不開的。
每個結點的內容(摘抄自《算法導論》,這里用的是“結點”):
其中每個結點就是一個對象。除了 key 和衛星數據之外,每個結點還包含屬性 left、right 和 p,它們分別指向結點的左孩子、右孩子和雙親。如果某個孩子結點和父結點不存在,則相應屬性的值為 NIL。
發現《算法導論》這里居然印錯了,不知道家里面那個紙版的,是不是也是這樣,這是第三版了,還會有這樣的錯誤,不應該。
總結
今天暫時寫到這里,未完待續…
參考
https://zh.wikipedia.org/wiki/%E4%BA%8C%E5%85%83%E6%90%9C%E5%B0%8B%E6%A8%B9
總結
以上是生活随笔為你收集整理的二叉树学习笔记(未完待续)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 杰理芯片移植涂鸦OTA步骤
- 下一篇: Apache服务(二)Apache服务的