Java简单实现二叉树
二叉树跟链表结构相似,但是是父子的结构而不是左右的结构,对于了解过链表知识的朋友应该不难理解二叉树
这篇文章主要写了二叉树的构建和前序,中序,后序遍历
本身我也是初学者,代码也是跟着网上的文章一点一点写出来的,这里放上我学习二叉树参考的文章
二叉树的增删改查基本学过链表的都不难理解,主要来看看三种遍历方式
三种遍历方式都是用递归写的,本身我也没有接触过递归,不过把树结构在图上画出来,脑子跟着递归走一遍就很容易懂了
public class Node {
public int data;
public Node left;
public Node right;
public Node(){
}
public Node(int i){
this.data = i;
}
}
这是二叉树的结点构造,跟链表也没什么差别
/**
* 前序遍历
* @param node
*/
public void PreOrder(Node node){
if(node != null){
System.out.println(node.data); //先访问根节点
PreOrder(node.left); //先根遍历左子树
PreOrder(node.right); //先根遍历右子树
}
}
/**
* 中序遍历
* @param root
*/
public void traverseInOrder(Node node) {
if (node!= null) {
traverseInOrder(node.left);
System.out.println(node.data);
traverseInOrder(node.right);
}
}
/**
* 后序排序
* @param node
*/
public void PostOrder(Node node){
if(node != null){
PostOrder(node.left); //后根遍历左子树
PostOrder(node.right); //后根遍历右子树
System.out.println(node.data); //访问根节点
}
}
代码都是抄上面文章里的,自己多想想递归过程也就懂了