java資料結構 二叉樹

2021-08-26 09:39:56 字數 2435 閱讀 1278

樹是一種特殊的資料結構,他可以用來描述有分支的結構是由乙個或者乙個以上的有限集合組成,具有兩個屬性:一是存在乙個特殊的節點,成為樹根;二是其餘節點分為n>=0個互斥集合,t1,t2,t3,……,tn,每個集合成為子樹。常用屬性如下:

1、根節點

根節點是乙個沒有雙親結點的結點,一棵樹中最多有乙個根節點。

2、結點的深度

是指從根節點到該節點的路徑長度。

3、結點的高度

是指從該節點到最深節點的路徑長度。

4、樹的高度

是樹中所有結點高度的最大值,樹的深度是樹中所有結點深度的最大值,對於同一棵樹,其深度和高度是相同的,但是對於各個結點,其深度和高度不一定相同。

1、二叉樹

如果一棵樹中的每個結點有0,1或者2個孩子結點,那麼這棵樹就稱為二叉樹;空樹也是一顆有效的二叉樹,一顆二叉樹可以看做是由根節點和兩棵不相交的子樹(分別稱為左子樹和右子樹)組成。

2、滿二叉樹

二叉樹中的每個結點恰好有兩個孩子結點且所有葉子結點都在同一層。

3、完全二叉樹

完全二叉樹從根結點到倒數第二層滿足滿二叉樹,最後一層可以不完全填充,其葉子結點都靠左對齊。

4、平衡二叉樹

它是一棵空樹或它的左右兩個子樹的高度差的絕對值不超過1,並且左右兩個子樹都是一棵平衡二叉樹。

5、線索二叉樹

通過考察各種二叉鍊錶,不管兒叉樹的形態如何,空鏈域的個數總是多過非空鏈域的個數。準確的說,n各結點的二叉鍊錶共有2n個鏈域,非空鏈域為n-1個,但其中的空鏈域卻有n+1個。所謂的線索二叉樹就是把這些所謂的空鏈加以利用,再指向其他結點,這些連線成為線索,而這個樹就成為線索二叉樹。

6、紅黑樹

不僅是具有二叉搜尋樹的屬性,還具有平衡樹的屬性,有序且子樹差不超過1,顏色規則:根節點和特殊節點(即葉節點下面兩個虛無的節點和未填寫的節點)是黑的,紅節點的左右子節點是黑的,最重要的是對於每個節點,從該節點到子孫葉節點的所有路徑包含相同數目的黑節點。

主要介紹而二叉樹的插入、查詢、遍歷。二叉樹的遍歷分為如下兩類:

(1)深度優先遍歷:從根節點出發,沿著左子樹方向進行縱向遍歷,直到找到葉子節點為止。然後回溯到前乙個節點,進行右子樹節點的遍歷,直到遍歷完所有可達節點為止。可分為前序遍歷,中序遍歷,後序遍歷。

(2)廣度優先遍歷:從根節點出發,在橫向遍歷二叉樹層段節點的基礎上縱向遍歷二叉樹的層次。一般借助與佇列實現。

1、建立二叉樹節點

public class node 

}

2、二叉樹構造方法

public class tree 

}

3、插入二叉樹

/**

* 插入

*/public void insert(int value)

//當前節點重新指向根節點

currrent = root;

//迴圈遍歷二叉樹

while (true) else

} else else }}

}

4、查詢二叉樹

/**

* 查詢

*/public int find(int value) else else

if (current == null)

}return current.value;}}

5、前序遍歷

/**

* 前序遍歷

*/public void displaypre(node root)

}

6、中序遍歷

/**

* 中序遍歷

*/public void displaymiddle(node root)

}

7、後序遍歷

/**

* 後序遍歷

*/public void displaylast(node root)

}

8、獲取根節點

/**

* 獲取根節點

*/public node getroot()

9、二叉樹是否為空

/**

* 判單二叉樹是否為空

*/public boolean isempty()

java資料結構 二叉樹

二叉樹是有限個數的集合,該集合或者為空,或者有乙個稱為根元素以及兩個不相交的,被分別稱為根的左子樹和右子樹的二叉樹組成。相關概念 深度 樹中結點的最大層數稱為樹的深度。結點的度 結點所擁有的子樹的個數稱為該結點的度。葉節點 度 0的節點。滿二叉樹 乙個二叉樹的每一層結點個數都達到了最大,即為滿二叉樹...

java 資料結構 二叉樹遍歷

前言 前序,中序和後序遍歷都是深度優先遍歷的特例 深度優先和廣度優先是針對普通樹的,但是先序,中序和後序都是針對二叉樹的。使用遞迴和迭代 借用棧 實現二叉樹先序,中序,後序遍歷 definition for a binary tree node.public class treenode 1.二叉樹...

Java資料結構之二叉樹

樹的定義 樹是一種由邊連線著結點的資料結構,資料模型上的樹可以看做是一棵倒掛的樹木,有乙個主幹,下面是枝幹 樹葉。樹的資料結構模型如下 節點 上圖的圓圈,比如a b c d等都是表示節點,節點裡面包含了儲存的資料以及指向其它節點的位址引用。邊 連線節點的線稱為邊,邊表示節點的關聯關係。一般從乙個節點...