樹的學習筆記 二叉樹概述

2021-10-11 23:11:21 字數 1056 閱讀 4536

樹是乙個非常重要的非線性資料結構。簡單來說他是根據資料關係講資料元素按分支結構連線起來的。其中,a為根,b為子數,一層層擴散開來,因為非常像自然界中的大樹,所以稱為樹。

在資料庫系統中,樹型結構也是資訊的重要組織形式之一。一切具有層次關係的問題都可用樹來描述。這次我介紹一下二叉樹

在電腦科學中,二叉樹是每個結點最多有兩個子樹的有序樹。通常子樹的根被稱作「左子樹」(left subtree)和「右子樹」(right subtree)。二叉樹常被用作二叉查詢樹和二叉堆或是二叉排序樹。

二叉樹有如下特點:

每個結點最多有兩顆子樹,結點的度最大為2

左子樹和右子樹是有順序的,次序不能顛倒

即使某結點只有乙個子樹,也要區分左右子樹。

所以說,二叉樹有五種基本形態:

· 二叉樹為空集的空二叉樹

·根和空的左右子樹

·根和左子樹

·根和右子樹

·根和左右字子樹

定義:高度為h,並且由2h-1個結點組成的二叉樹,稱為滿二叉樹。

**定義:**一棵二叉樹中,只有最下面兩層結點的度可以小於2,並且最下層的葉結點集中在靠左的若干位置上,這樣的二叉樹稱為完全二叉樹。

因此,滿二叉樹必須是完全二叉樹,反過來不一定成立。

訪問根結點的操作發生在遍歷其左右子樹之前。

輸出順序為:根左右;

按圖一為:abcdegf

訪問根結點的操作發生在遍歷其左右子樹之中(間)。

輸出順序為:左根右

按圖一輸出為:cbegbfa

訪問根結點的操作發生在遍歷其左右子樹之後。

輸出順序為:左右根

按圖一輸出為:cgefdba

二叉樹學習筆記 概述

陣列 向量 鍊錶都是一種順序容器,它們提供了按位置訪問資料的手段。而非常多情況下,我們須要按資料的值來訪問元素,而不是它們的位置來訪問元素。比方有這樣乙個陣列int num 3 我們能夠非常高速的訪問陣列中下標為2的資料,也就是說我們知道這個資料的位置。就能夠高速訪問。有時候我們是不知道元素的位置。...

學習筆記 樹 二叉樹

輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹並返回。本題主要採用遞迴的思想。首先介紹一下根據前序遍歷和中序遍歷來構建二叉樹的思路 前序遍歷的第乙個則是二叉樹的根,找到根在中序遍歷中的位...

二叉樹學習筆記

二叉樹是樹的一種特殊結構,也是一種極為重要的樹,二叉樹最重要的操作是遍歷,即按照一定的順序訪問樹中的所有節點,常見的遍歷方式有 對遍歷來說,最容易想到的方式就是遞迴,遞迴 簡單,但是效率不高,需要的棧空間比較大,非遞迴的方法 較為複雜,不過效率較高。遞迴實現 void preordervisit b...