一:创建一棵二叉树
二:二叉树的遍历
三:节点的查找
四:删除子树
一:创建一棵二叉树
1.1. 链式存储创建如下二叉树:
1.11创建一棵树:
public static void main(String[] args) {
//创建一棵树
BinaryTree binTree = new BinaryTree();
}
这样就完成了一棵树的创建,可能大家会疑惑,这里面什么都没有,怎么叫创建一棵树呢?
这其实就是一颗空树
1.2二叉树的全部代码:
/**
* 2019年2月15日
*/
package demo5;
/**
* 测试二叉树的类
*
* 2019年2月15日
*/
public class TestBinary {
public static void main(String[] args) {
//创建一棵树
BinaryTree binTree = new BinaryTree();
//创建根节点
TreeNode root =new TreeNode(1);
//把根节点赋给树
binTree.setRoot(root);
//创建左节点
TreeNode NodeL =new TreeNode(2);
//创建右节点
TreeNode NodeR = new TreeNode(3);
//把左右节点添加到根节点
root.setlNode(NodeL);
root.setrNode(NodeR);
}
}
package demo5;
/**
* 创建二叉树:实现添加,查看根节点,添加左右节点
*
* 2019年2月15日
*/
public class BinaryTree {
//根节点
TreeNode root;
//设置根节点
public void setRoot(TreeNode root) {
this.root = root;
}
//获取根节点
public TreeNode getRoot() {
return root;
}
}
/**
* 2019年2月15日
*/
package demo5;
/**
* 二叉树的左右节点
*
* 2019年2月15日
*/
public class TreeNode {
//设置节点的权(值)
int value;
//设置左节点
TreeNode lNode;
//设置右节点
TreeNode rNode;
public TreeNode(int value){
value=this.value;
}
//设置左节点
public void setlNode(TreeNode lNode) {
this.lNode = lNode;
}
//设置右节点
public void setrNode(TreeNode rNode) {
this.rNode = rNode;
}
}
二:二叉树的遍历
2.二叉树的三种遍历
前序遍历:根节点–左节点-右节点
中序遍历:左节点–根节点—右节点
后序遍历:左节点-右节点–根节点
前中后都是相对于根节点而言
无论哪种遍历都是先左后右