非線性結構 樹1

2021-10-25 06:30:28 字數 1265 閱讀 6566

1、樹的定義

1、有且只有乙個根的節點;

2、有若干個互不相交的子樹,這些子樹本身也是一棵樹;

通俗定義:樹是由節點和邊組成;每個節點只有乙個父節點,可以有多個子節點;根節點沒有父節點。

專業術語:

節點 父節點 子節點 子孫 堂兄弟

*樹的深度:*從根節點到最底層節點的層數稱為深度,根節點是第一層;

*葉子節點:*沒有子節點的節點

*非終端節點:*實際就是非葉子節點

*度:*子節點的個數為度

2、樹的分類

1、一般樹

任意乙個節點的子節點的個數都不受限制

2、二叉樹

任意乙個節點的子節點個數最多兩個,並且子節點的位置不可改變

分類:(1)一般二叉樹

(2)滿二叉樹

不增加樹的層數的情況下,無法再多新增乙個節點的二叉樹就是滿二叉樹

(3)完全二叉樹

如果只是刪除了滿二叉樹最底層最右邊的連續若干個節點,這樣形成的二叉樹就是完全二叉樹

3、森林

n個互不相交的樹的集合

3、樹的儲存

(1)二叉樹的儲存

1> 連續儲存【完全二叉樹】

優點:查詢某個節點的父節點和子節點

缺點:好用記憶體空間大

2> 鏈式儲存

(2)一般樹的儲存

1> 雙親表示法

求父節點方便

2> 孩子表示法

求子節點方便

3> 雙親孩子表示法

求父節點和子節點都很方便

4> 二叉樹表示法

把乙個普通樹轉換成二叉樹來儲存;

具體措施:設法保證任意乙個節點左指標域指向它的第乙個孩子,右指標域指向它的堂兄弟,只要滿足此條件,即可將普通樹轉換成二叉樹,乙個普通樹轉換成的二叉樹一定沒有右子樹。

(3)森林的儲存

3、樹的操作

1> 遍歷

1.先序遍歷

先訪問根節點,再先序訪問左子樹,最後訪問右子樹。

2.中序遍歷

先訪問左子樹,再先序遍歷根節點,最後訪問右子樹。

3.後序遍歷

先訪問左子樹,再先序右子樹,最後訪問根節點。

4、樹的應用

樹是資料庫中資料組織的一種重要組織形式;

作業系統子父程序的關係本身就是一棵樹;

物件導向語言中類的繼承關係;

哈夫曼樹

非線性結構 樹 樹型別 樹應用

上乙個部落格已經解釋過了什麼是線性和非線性的區別。想要系統的了解,需要參照之前的博文。樹是一種非常重要的非線性結構!為什麼稱為樹結構呢?主要是長得有點像,樹形結構講究層級和分叉,和自然界的樹比較相近。以下的樹是無序,單純按存放方式。理解樹 這是乙個簡單的樹形結構圖,其中在理論範疇來講,節點三到五稱為...

線性結構和非線性結構

資料結構是計算機儲存 組織資料的方式。常見的資料結構分類方式如下圖 常用的線性結構有 線性表,棧,佇列,迴圈佇列,陣列。線性表中包括順序表 鍊錶等,其中,棧和佇列只是屬於邏輯上的概念,實際中不存在,僅僅是一種思想,一種理念 線性表則是在記憶體中資料的一種組織 儲存的方式。線性結構是最簡單最常用的一種...

線性結構與非線性結構

對於資料結構,感情是 在撓頭也要學啊 我愛資料結構,資料結構使我快樂 呵 這裡一點一點開始扯 線性資料結構 定義為 1.有唯一的首元素及尾元素,2.資料元素之間是一對一關係 3.除首元素和尾元素外,每個元素都只有唯一的前段和後端 我詞真窮 樣例 線性表,堆,棧,佇列,陣列 基本指一維的 鍊錶 非線性...