數據結構——二叉樹的基本介紹

————————————本文旨在討論與學習計算機知識,歡迎交流————————————

? ? ? ? 上一章,我們講解了樹結構的綜述導論,那么,現在我們來深入了解一下樹結構中最常用研究的結構——二叉樹結構(上一章的擴展——孩子兄弟表示法就是利用的二叉樹的原理)。

以上是關于普通二叉樹的基本概念,我們可以結合上一章樹的概念記憶。特別的,我們需要注意:二叉樹是度不超過二的樹,其子樹也是二叉樹。

下面,我們來了解一下有關二叉樹的兩個重要概念:滿二叉樹與完全二叉樹。

1、滿二叉樹

? ? ? ? 滿二叉樹是指除了葉子結點外的每一個節點的度都是二且深度相同的樹。

2、完全二叉樹

? ? ? ? 完全二叉樹是指度不為二的節點只存在與倒數二、三行且葉子結點只存在于倒數一、二行的樹。

介紹完滿二叉樹與完全二叉樹的基本概念之后,我們下面要剖析它們的重要性質:

性質1:在二叉樹的第i層上的結點最多為2 個。(i ≥ 1)

性質2:深度為k的二叉樹至多有2 -1個結點。(i ≥ 1)?

性質3:在一棵二叉樹中,葉結點的數目比度為2的結點數目多一個。

? ? ? ? ? ? ?原理:

??? ? ? ??????????

? ? ? ? ? ? ? ? 加的1為根節點,其解釋為:度為1的節點*1+度為2的節點*2+根節點。

性質4:

性質5:如果有一棵n個結點的完全二叉樹,其結點編號按照層次序(從上到下,從左到右),則除根結點外,滿足[i/2 , i, 2i, 2i+1](父,自身,左孩子,右孩子)的規則。

二叉樹的存儲:

????????通常,我們摒棄順序存儲(除了少量特殊的二叉樹),因為這種存儲方式非常浪費空間,我們更多使用鏈式存儲來存儲數據。而對于樹,鏈式二叉樹我們也有樹頭,樹頭作為起點更新和查找樹上元素,不過當前我們仍不能自由快速的查詢元素,直到我們學到二叉搜索樹的時候我們會再次介紹樹的搜索與遍歷操作。

希望能對你有所幫助!

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

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

相關文章

英偉達發布 Llama Nemotron Nano 4B:專為邊緣 AI 和科研任務優化的高效開源推理模型

英偉達推出了 Llama Nem)otron Nano 4B,這是一款專為在科學任務、編程、符號運算、函數調用和指令執行方面提供強大性能與效率而設計的開源推理模型,其緊湊程度足以支持邊緣部署。該模型僅包含 40 億參數,卻在內部基準測試中實現了比其他多達…

論文閱讀筆記——Autoregressive Image Generation without Vector Quantization

MAR 論文 基于 VQ(向量量化)的圖像生成方法具有顯著優勢,它通過離散化壓縮將原始圖像映射到有限的 codebook 空間,從而縮小學習范圍、降低建模難度,同時這種離散表示更易于與自回歸(AG)生成方式…

【科普】關于C 語言日志系統實戰:如何同時輸出到終端和文件?

1.概述 c語言沒有現成的日志庫,如果要記錄日志,需要自己封裝一個日志庫。如果要實現日志級別和參數打印,還是比較麻煩的,正好在github找到了一個c語言開源日志庫,可以實現日志級別打印,參數打印&#xff0…

2025,數字人借直播場景邁過“真假線”丨數智化觀察

作者 | 曾響鈴文 | 響鈴說一夜帶貨超5500萬GMV、觀看人次1300萬,羅永浩數字人在百度電商的直播首秀正在掀起新的行業浪潮——2025,數字人直播帶貨成功出圈,加速進入大眾視野,被更多的消費者所認可。成就這場熱潮的關鍵點之一&…

HTML表格導出為Excel文件的實現方案

1、前端javascript可通過mime類型、blob對象或專業庫(如sheetjs)實現html表格導出excel,適用于中小型數據量;2、服務器端方案利用后端語言(如python的openpyxl、java的apache poi)處理復雜報表和大數據&…

企業微信iPad協議端強制拉群漏洞深度分析

正常一次最多邀請40人進群 超過40人的拉群,會變成邀請,需要對方同意 新版本修復了漏洞,但還是可以用老版本進行強制拉群 雖然官方也做了版本過低的限制,但還是有辦法繞過 要么修改版本號或者登錄幾天新版本,之后就可以…

Python編譯器(Pycharm Jupyter)

Pycharm下載不過多贅述pycharm導入anaconda創建的python環境選擇想要的環境 Jupyter Jupyter 是一個開源的交互式計算環境,能夠讓用戶將代碼、文本(包括 Markdown)、可視化結果等內容整合在一個文檔中,非常適合進行數據分析、科學…

漏洞修復與Fiddler抓包工具的使用

漏洞描述 1. 短信轟炸漏洞 Type:存在三個不同的值。Login是登錄處,register是注冊賬號處的短信驗證碼獲取值,還有一個update值。未注冊的用戶也可以進行發送短信。 2. 手機號繞過,修改密碼漏洞(邏輯漏洞) 目前注冊使用手機號與忘記密碼的手機號驗證測試都可以繞過, …

對象存儲-OSS

目錄 對象存儲背景 阿里云OSS 對象存儲背景 單節點環境下,文件往往存儲在tomcat服務器內,隨著業務需求的增多,單節點已不能滿足需求,項目架構需要擴展到多節點(見下圖),此時文…

C語言函數的聲明

1定義:在C語言中,函數是一段具有特定功能的獨立代碼塊,它可以接收輸入參數、執行相關操作并返回結果。2為什么需要函數(1)代碼復用:避免重復編寫相同功能的代碼, (2)模塊…

AI人工智能名片小程序源碼系統,名片小程序+分銷商城+AI客服,包含完整搭建教程

智能名片核心功能AI人工智能名片小程序的核心功能設計旨在徹底改變傳統商務交流方式,為用戶提供前所未有的智能化體驗。個性化名片展示是系統的基礎功能,用戶可以通過豐富的模板庫和自定義設計工具,創建獨具特色的電子名片。系統提供多種預設…

React 教程:井字棋游戲

React 教程:井字棋游戲 使用 React 實現一個交互式的井字棋游戲,并配上好看的樣式 // 導入必要的CSS樣式和React庫 import "./App.css"; import { useState } from "react";// Square組件 - 表示棋盤上的一個格子 function Square({…

React源碼2 React中的工廠函數:createRoot()

#React V18.2 源碼前置基礎知識:工廠函數工廠函數是一種設計模式,用于動態創建對象或函數實例。其核心思想是通過封裝對象創建的細節,提供統一的接口,從而增強代碼的靈活性和可維護性,有一些核心作用:解耦創…

《UE5_C++多人TPS完整教程》學習筆記42 ——《P43 瞄準(Aiming)》

本文為B站系列教學視頻 《UE5_C多人TPS完整教程》 —— 《P43 瞄準(Aiming)》 的學習筆記,該系列教學視頻為計算機工程師、程序員、游戲開發者、作家(Engineer, Programmer, Game Developer, Author) Stephen Ulibarri…

SQL Server 臨時表、表變量與WITH語句的用法與區別

引言 在SQL Server數據處理中,臨時表、表變量和WITH語句(CTE)是關鍵的中間結果集管理工具。臨時表適合大數據量操作,表變量優化小數據量場景,而CTE則簡化復雜查詢邏輯。三者選擇需綜合考量數據量級、事務需求及代碼可讀性。本文將深入解析其工作機制,通過實測對比指導場…

【Android】組件及布局介紹

一:代碼分析 1:Android界面開發方式 (1)JavaView(傳統視圖系統) 這是 Android 早期的開發方式,用 Java 或 Kotlin 代碼配合 XML 布局文件 來構建界面。(簡單了解即可) 分…

Android 音視頻 IPC序列化工具-Flattenable

Android Binder與AIDL與Service使用案例及分析-CSDN博客 講講這個類,被用在Android音視頻中,跨進程序列化反序列化用。與Binder驅動有很強的聯系。位于: feameworks/native/utils/Flattenable.h Flattenable, 譯為令人滿意的。可能是作者十分滿意自己的這些作品吧,起了這…

文獻學習|全面繪制和建模水稻調控組景觀揭示了復雜性狀背后的調控架構。

摘要: 解析調控復雜性狀的機制對于推進作物改良至關重要。在此,我們提出了一個全面的水稻(Oryza sativa)調控組圖譜,涵蓋了來自三個代表性品種的23種不同組織的染色質可及性。我們的研究揭示了117,176個獨特的開放染色…

Linux的壓縮與解壓縮

一、使用tar命令進行打包與解包 1.0、tar命令簡介和常用選項 tar命令是Linux中經常使用的歸檔工具,它的主要功能是【對文件或者目錄進行打包歸檔】,歸檔為一個文件,但是并不進行壓縮;tar命令的歸檔操作效果如下: tar命…

OpenCV+OCR實現弧形文字識別

以下是基于OpenCV與OCR實現弧形文字識別的完整技術方案,結合了圖像預處理、幾何變換與OCR引擎調用等關鍵步驟,并提供優化技巧:🔍 一、技術原理弧形文字識別的核心在于??將彎曲文本轉換為水平直線??,便于OCR引擎處理…