二叉树
- 二叉树是树的一种,每个节点最多只能有两个子节点。左子树右子树。(左孩子,右孩子)。
- 二叉树的建立:
创建节点
在package tree;
public class NodeTree {
//定义数据域
int data;
//定义左子树
NodeTree leftChild;
//定义右子树
NodeTree rightChild;
public NodeTree(int data) {
data = -1;
leftChild = null;
rightChild = null;
}
public int getData() {
return data;
}
public void setData(int data) {
this.data = data;
}
public NodeTree getLeftChild() {
return leftChild;
}
public void setLeftChild(NodeTree leftChild) {
this.leftChild = leftChild;
}
public NodeTree getRightChild() {
return rightChild;
}
public void setRightChild(NodeTree rightChild) {
this.rightChild = rightChild;
}
//小于根节点放左边
public void addNode(NodeTree newNode,int data) {
//newnode 为要新添加的的节点,data为要新添加的节点的值
if(this.data>newNode.data) { //this.data 为此时根节点的值
if(this.leftChild==null) {
this.leftChild=newNode;
}else {
this.leftChild.addNode(newNode, data);
}
}
//大于根节点放右边
if(this.data<=newNode.data) {
if(this.rightChild==null) {
this.rightChild=newNode;
}else {
this.rightChild.addNode(newNode, data);
}
}
}
}
这里插入代码片
创建树
package tree;
public class BinTree {
//根节点
NodeTree root;
public void add(int data) {
//调用节点类
NodeTree newTree = new NodeTree(data);
if(root ==null) {
this.root = newTree;
}else {
this.root.addNode(newTree, data);
}
}
}
3.4种顺序
前排序,中排序,后排序(根左右,左根右,左右根),还有层排序。
需要掌握4种排序和根据前中,和后中两种排序恢复原树。