創建二叉樹
二叉樹的鏈式存儲結構是指用鏈表來表示一棵二叉樹,即用鏈表來指示元素之間的邏輯關係。
二叉鏈表存儲,鏈表中每個節點有三個域組成,除了數據域外,還有兩個引用域,分別用來給出該
節點左孩子和右孩子所在的鏈節點的存儲地址。
二叉樹節點存儲結構
其中,data域存放某節點的數據信息;Lchild與rchild分別存放指向左孩子和右孩子的引用,當左孩子
或右孩子不存在時,相應引用域爲空(用符號 ^ 或Null表示)。
有時爲了操作方便,也可以爲二叉鏈表加上一個頭結點,根節點的引用存放在頭結點的左孩子引用
域,右孩子引用域置爲空。
二叉樹鏈式存儲結構示意圖
代碼展示
package demo5;
public class BinaryTree {
TreeNode root;
//設置根節點
public void setRoot(TreeNode root){
this.root = root;
}
//獲取根節點
public TreeNode getRoot(){
return root;
}
}
package demo5;
public class TreeNode {
//節點的權
int value;
//左兒子
TreeNode leftNode;
//右兒子
TreeNode rightNode;
public TreeNode(int value){
this.value = value;
}
//設置左兒子
public void setLeftNode(TreeNode leftNode) {
this.leftNode = leftNode;
}
//設置右兒子
public void setRightNode(TreeNode rightNode) {
this.rightNode = rightNode;
}
}
package demo5;
public class TestBinaryTree {
public static void main(String[] args) {
//創建一棵樹
BinaryTree binaryTree = new BinaryTree();
//創建一個根節點
TreeNode root = new TreeNode(1);
//把根節點賦給樹
binaryTree.setRoot(root);
//創建一個左節點
TreeNode rootL = new TreeNode(2);
//把新創建的節點設置爲根節點的子節點
root.setLeftNode(rootL);
//創建一個右節點
TreeNode rootR = new TreeNode(3);
//把新創建的節點設置爲根節點的子節點
root.setRightNode(rootR);
}
}