import java.util.Scanner;
class Node
{
Node lchild,rchild;
int data;
Node()
{
}
}
public class Linkdemo
{
Scanner input = new Scanner(System.in);
public Node creat(Node root,int k)
{
Node temp = new Node();
int a = input.nextInt();
if(a!=0)
{
temp.data = a;
temp.lchild = null;
temp.rchild = null;
if(k==0)
{
root = temp;
}
else if (k==1)
{
root.lchild = temp;
}
else if(k==2)
{
root.rchild = temp;
}
creat(temp,1);
creat(temp,2);
}
return root;
}
public static void postorder(Node node)
{
if(node!=null)
{
postorder(node.lchild);
postorder(node.rchild);
System.out.println(node.data);
}
}
public static void inorder(Node node)
{
if(node!=null)
{
inorder(node.lchild);
System.out.println(node.data);
inorder(node.rchild);
}
}
public static void preorder(Node node)
{
if(node!=null)
{
System.out.println(node.data);
preorder(node.lchild);
preorder(node.rchild);
}
}
Linkdemo()
{
}
public static void main(String[] args)
{
Node root = new Node();
Linkdemo kk = new Linkdemo();
root = kk.creat(root, 0);
preorder(root); //前序遍历
postorder(root); //中序遍历
inorder(root); //后序遍历
}
}
基于Java的二叉树操作,遇0返回双亲结点。