樹(tree)是n(n>=0)個結點的有限集。n=0又稱為空樹。在任意一課非空的樹中:(1)有且僅有乙個特定的稱為跟(root)的結點;(2)當n>1時,其餘結點可分為m(m>0)個互不相交的有限集,其中每乙個集合本身又是一棵樹,並且稱為根的子樹(subtree)。
(1)子樹是不相交的。
(2)除根節點外,每個節點有且僅有乙個父節點。
(3)乙個n個節點的樹有n-1條邊。
(1)結點的度(degree):結點的子樹個數
(2)樹的度:樹的所有結點中最大的度數
(3)葉結點(leaf):度為0的結點
(4)樹的深度(depth):樹中所有結點中的最 大層次是這棵樹的深度。
二叉樹(binary tree)是n(n>=0)個結點的有限集合,該集合或者為空集(稱為空二叉樹),或者由乙個根結點和兩棵互不相交的、分別稱為根結點的左子樹和右子樹的二叉樹組成。
性質1:在二叉樹的第i層上至多有
性質2:深度為k的二叉樹至多有
性質3:對任何一棵二叉樹t,如果其終端結點數為n0,度為2的結點數為n2,則n0=n2+1。
性質4:具有n個結點的完全二叉樹的深度為|
性質5:如果對一棵有n個結點的完全二叉樹(其深度為)的結點按層序編號(從第1層到第層,每層從左到右),對任一結點i(1≤i≤n)有:
1.如果i=1,則結點i是二叉樹的根,無雙親;如果i>1,則其雙親是結點。
2.其左孩子是結點2i,如果2i>n,則結點i無左孩子(結點i為葉子結點);
3.其右孩子是結點2i+1,如果2i+1>n,則結點i無右孩子;
深度為k的二叉樹有
按順序排列沒有空檔的樹
定義:(1)堆是一顆完全二叉樹;
(2)父節點大於等於(最大堆)或小於等於(最小堆)其左右孩子結點的值。
(3)堆中每個結點的子樹都是堆樹。
定義:(1)非空左子樹上所有結點的值均小於它的根結點的值;
(2)非空右子樹上所有結點的值均大於它的根結點的值;
(3)左、右子樹也分別為二分搜尋樹。
每個節點左右子樹高度差至多為1的二分搜尋樹。
資料結構 樹的基礎知識01
一 樹 1 什麼是樹?樹 tree 是n n 0 個結點的有限集。n 0時稱為空樹。在任意一顆非空樹中 有且僅有乙個特定的稱為根的結點。當n 1時,其餘結點可分為m m 0 個互不相交的有限集t1 t2 t3 tm,其中每個集合本身又是一棵樹,並且稱為根的子樹。2 樹的基本概念看下面的圖 3 定義樹...
資料結構基礎知識
時間複雜度和空間複雜度 同一問題可用不同演算法解決,而乙個演算法的質量優劣將影響到演算法乃至程式的效率。演算法分析的目的在於選擇合適演算法和改進演算法。乙個演算法的評價主要從時間複雜度和空間複雜度來考慮。1 時間複雜度 1 時間頻度 乙個演算法執行所耗費的時間,從理論上是不能算出來的,必須上機執行測...
資料結構基礎知識
一種資料的邏輯結根據需要可以表示成多種儲存結構,常用的儲存結構有順序儲存 鏈結儲存 索引儲存等,採用不同的資料結構,其資料處理的效率是不同的。線性表是一種常用的資料結構。在實際應用中,線性表都是以棧 佇列 字串 陣列等特殊線性表的形式來使用的。線性表是一種線性結構。線性表有順序儲存結構和鏈式儲存結構...