二叉樹的基本性質及證明

性質1:一棵非空二叉樹的第i層上最多有2^(i-1)個結點,(i>=1)。

性質2:一棵深度為k的二叉樹中,最多具有2^k-1個結點,最少有k個結點。

性質3:對于一棵非空的二叉樹,度為0的結點(即葉子結點)總比度為1的結點多一個,即葉子結點數為n0,度為2的結點數為n2,則有n0=n2+1。

證明:如果n0表示度為0(即葉子結點)的結點數,用n1表示度為1的結點數,n2表示度為2的結點數,n表示整個完全二叉樹的結點總數,則有n=n0+n1+n2,根據二叉樹和樹的性質,可知n=n1+2xn2+1(所有結點的度數之和加1等于結點總數),根據兩個等式可知n0+n1+n2=n1+2xn2+1,即n2=n0-1,也即n0=n2+1。

性質4:具有n個結點的完全二叉樹深度為(log2(n))+1。

證明:根據性質2,深度為k的二叉樹,最多有2k-1個結點,且完全二叉樹的定義是與同深度的滿二叉樹前邊的編號相同,即它們的結點總數n位于k層和k-1層的滿二叉樹容量之間,即2(k-1)-1< n <=2k-1之間,或2(k-1) <= n <2^k,兩邊同時取對數得,k-1<=log2(n)<k,又因層數為整數,故log2(n)=k-1,即k=log2(n)+1。

性質5:對具有n個結點的完全二叉樹,如果按照從上至下和從左至右的順序對二叉樹的所有結點從1開始編號,則對于任意的序號為i的結點有:

如果i>1,那么序號為i的結點的雙親結點序號為i/2;

如果i=1,那么序號為i的結點為根節點,無雙親結點;

如果2i<=n,那么序號為i的結點的左孩子結點序號為2i;

如果2i>n,那么序號為i的結點無左孩子;

如果2i+1<=n,那么序號為i的結點右孩子序號為2i+1;

如果2i+1>n,那么序號為i的結點無右孩子。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/249235.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/249235.shtml
英文地址,請注明出處:http://en.pswp.cn/news/249235.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ACM10.14題解

ACM10.14題解 第一次打周賽&#xff0c;感覺還是比較緊張的&#xff0c;應該開完所有的題再做&#xff0c;而不是硬做&#xff0c;沒必要硬杠英語&#xff0c;還是不要抱有僥幸心理&#xff0c;做對一定是完全理解且會&#xff0c;自己小心邊界問題&#xff0c;不要瞎交。 A&am…

vscode: Visual Studio Code 常用快捷鍵

原文章地址&#xff1a; vscode: Visual Studio Code 常用快捷鍵 官方快捷鍵說明&#xff1a;Key Bindings for Visual Studio Code 主命令框 F1 或 CtrlShiftP: 打開命令面板。在打開的輸入框內&#xff0c;可以輸入任何命令&#xff0c;例如&#xff1a; 按一下 Backspace…

HTML5概要與新增標簽

一、HTML5概要 1.1、為什么需要HTML5 HTML4陳舊不能滿足日益發展的互聯網需要&#xff0c;特別是移動互聯網。為了增強瀏覽器功能Flash被廣泛使用&#xff0c;但安全與穩定堪憂&#xff0c;不適合在移動端使用&#xff08;耗電、觸摸、不開放&#xff09;。 HTML5增強了瀏覽器的…

Tomcat啟動失敗錯誤解決Could not publish server configuration for Tomcat v8.0 Server at localhost....

這個問題本質是我們有多個重名項目&#xff0c;為什么我們會有多個重名項目&#xff0c;其實一般都是我們刪除以前的項目&#xff0c;然后再把它重新導進eclipse時以前的項目刪除不徹底造成的&#xff0c;以前的項目在"Servers"里面的"server.xml"文件下的…

二叉樹特性及證明

https://blog.csdn.net/jun2016425/article/details/54581407

Mock.js 和Node.js詳細講解

????原文地址&#xff1a;http://www.manongjc.com/article/10503.html 《一統江湖的大前端》系列是自己的前端學習筆記&#xff0c;旨在介紹javascript在非網頁開發領域的應用案例和發現各類好玩的js庫&#xff0c;不定期更新。如果你對前端的理解還是寫寫頁面綁綁事件&am…

架構圖

負載均衡 分布式 轉載于:https://www.cnblogs.com/jiqing9006/p/10672280.html

網絡操作系統P12頁答案

1.什么是網絡操作系統&#xff1f;網絡操作系統具有哪些基本功能&#xff1f;網絡操作系統&#xff1a;專門為網絡用戶提供操作接口的系統軟件&#xff0c;除了管理計算機的軟件和硬件資源具備單機操作系統&#xff0c;并且為網絡用戶提供各種網絡服務。當然網絡操作系統不僅要…

如何將存儲在MongoDB數據庫中的數據導出到Excel中?

將MongoDB數據庫中的數據導出到Excel中&#xff0c;只需以下幾個步驟&#xff1a; &#xff08;1&#xff09;首先&#xff0c;打開MongoDB安裝目錄下的bin文件夾&#xff0c;&#xff08;C:\Program Files (x86)\MongoDB\Server\3.2\bin&#xff09;&#xff1b;此處視個人安裝…

vue 項目初始化時,npm run dev報錯解決方法

錯誤如下&#xff1a; npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! travel1.0.0 dev: webpack-dev-server --inline --progress --config build/webpack.dev.conf.js npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the travel1.0.0 dev script. npm ERR…

JDK源碼分析

https://www.jianshu.com/p/f1f1f14e7fbe

VSCode 初次寫vue項目并一鍵生成.vue模版

1.安裝vscode 官網地址&#xff1a;https://code.visualstudio.com/2.安裝一個插件&#xff0c;識別vue文件 插件庫中搜索Vetur&#xff0c;下圖中的第一個&#xff0c;點擊安裝&#xff0c;安裝完成之后點擊重新加載微信圖片_20180723174649.png 3.新建代碼片段 文件-->…

文本聊天室(TCP-中)

開始我們今天的代碼實現&#xff0c;我們接著上一回&#xff0c;上回實現了服務器的代碼這次實現客戶端的UI(界面)層, 我們界面層采用javafx來進行繪制,首先有個登錄服務器的界面然后切換到聊天界面運行結果如下.源代碼如下: 1 package jffx.blogs.net;2 3 import javafx.appli…

Oracle 查詢庫中所有表名、字段名、字段名說明,查詢表的數據條數、表名、中文表名...

查詢所有表名&#xff1a;select t.table_name from user_tables t;查詢所有字段名&#xff1a;select t.column_name from user_col_comments t;查詢指定表的所有字段名&#xff1a;select t.column_name from user_col_comments t where t.table_name BIZ_DICT_XB;查詢指定表…

lucene原理

https://www.jianshu.com/p/0cfe042412a2

電商網站前端架構 學習筆記(全是干貨)

1:前端架構的基本知識 1: 前端工程師必須會的一些技能 前端工程師基本技能圖.PNG 2: 前端架構基本知識 什么是前端架構? 每個人對每個架構有不同的認識和一些想法。沒有一個架構是完美的&#xff0c;只有一個架構是不是適合你的。哪個個架構符合你的需求的時候&#xff0c…

愛好-摩托車:鈴木

ylbtech-愛好-摩托車&#xff1a;鈴木1.返回頂部 2.返回頂部3.返回頂部4.返回頂部5.返回頂部 1、http://www.suzuki-china.com/motor/2、6.返回頂部作者&#xff1a;ylbtech出處&#xff1a;http://ylbtech.cnblogs.com/本文版權歸作者和博客園共有&#xff0c;歡迎轉載&#x…

Unable to preventDefault inside passive event listener

轉自&#xff1a;https://segmentfault.com/a/1190000008512184 測試&#xff1a; body {margin: 0;height: 2000px;background: linear-gradient(to bottom, red, green); }// 在 chrome56 中&#xff0c;照樣滾動&#xff0c;而且控制臺會有提示&#xff0c;blablabla window…

thymeleaf 中文文檔

https://raledong.gitbooks.io/using-thymeleaf/content/

vue面試題,知識點匯總(有答案)

一. Vue核心小知識點 1、vue中 key 值的作用 key 的特殊屬性主要用在 Vue的虛擬DOM算法&#xff0c;在新舊nodes對比時辨識VNodes。如果不使用key&#xff0c;Vue會使用一種最大限度減少動態元素并且盡可能的嘗試修復/再利用相同類型元素的算法。使用key&#xff0c;它會基于…