資料結構 二叉樹的基本形態和儲存結構

2021-10-24 09:45:32 字數 1609 閱讀 4040

前言

一、二叉樹的定義

1.定義

2.特點

二、二叉樹結構

1.二叉樹的五種基本形態

2.特殊的二叉樹

1.斜樹

2.滿二叉樹

3.完全二叉樹

三、二叉樹的性質

四、二叉樹的儲存結構 

順序儲存

鏈式儲存

之前在部落格【資料結構】樹的基本認識中已經介紹了樹的基本的概念,也知道了樹的結構其實是多種多樣,但其中二叉樹是最基礎,最常用的一種結構。

二叉樹是n(n≥0)個結點的有限集合:

① 或者為空二叉樹,即n=0。

② 或者由乙個根結點和兩個互不相交的被稱為根的左子樹 和右子樹組成。左子樹和右子樹又分別是一棵二叉樹。

① 每個結點最多有兩棵子樹,即二叉樹不存在度大於2的結點。

② 二叉樹的子樹有左右之分,其子樹的次序不能顛倒。

①左斜樹:所有的結點只有左子樹

②右斜樹:所有的結點只有右子樹

特點:每層只有乙個結點,結點的個數等於二叉樹的深度

定義:乙個二叉樹,如果每乙個層的結點數都達到最大值,則這個二叉樹就是滿二叉樹。也就是說,如果乙個二叉樹的層數為k,且結點總數是(2^k) -1 ,則它就是滿二叉樹。

特點:①所有的非終端結點都存在左右子樹,並且所有的葉子結點都在最下面一層

②非葉子結點度一定為2

③同一深度的二叉樹中,滿二叉樹的結點數最多,葉子結點數最多

定義:對一棵樹具有n個結點的二叉樹按層次編號,當且僅當其每乙個結點都與同深度的滿二叉樹中編號從1至n的結點一一對應時稱之為完全二叉樹。 要注意的是滿二叉樹是一種特殊的完全二叉樹。

特點:①葉子結點只能出現在最下面兩層

②最下層的葉子結點一定集中於左部連續位置

③如果結點的度為1,則該結點只有左孩子,即不可能存在只有右孩子的情況

④相同結點數的二叉樹中,完全二叉樹的深度最小

二叉樹一般可以使用兩種結構儲存,一種順序結構,一種鏈式結構

鍊錶結點:每個結點包含乙個資料域和兩個指標域

二叉鏈和三叉鏈

二叉鍊錶和三叉鍊錶結點**如下(示例):

// 二叉鏈

struct binarytreenode

// 三叉鏈

struct binarytreenode

資料結構(二叉樹) 二叉樹的建立 儲存 遍歷

建立二叉樹,並通過呼叫函式,輸出先序遍歷 中序遍歷與後序遍歷的結果 include include define true 1 define false 0 define ok 1 define error 0 datatype 是二叉樹資料元素型別,此程式定義為char型 typedef char...

資料結構 順序儲存二叉樹

include iostream using namespace std define max node size 100 二叉樹的最大節點數 typedef char sqbitree max node size 1 0號單元節點個數 建立二叉樹 void creat tree sqbitree ...

資料結構 樹和二叉樹

第一節 二叉樹的定義與基本操作 定義 我們把滿足以下兩個條件的樹型結構叫做二叉樹 binary tree 1 每個結點的度都不大於2 2 每個結點的孩子結點次序不能任意顛倒。由定義得出 二叉樹的每個結點只能含有0 1或2個孩子,且有左右之分。1 二叉樹的五種基本形態 2 二叉樹性質 性質1 二叉樹第...