您的位置:首页 > 编程语言 > Java开发

Java学习(十八):二叉树的三种递归遍历

2015-04-20 23:31 323 查看
二叉树的三种递归遍历:

public class StudentNode
{
private String name;

private StudentNode leftNode;

private StudentNode rightNode;

public String getName()
{
return name;
}

public void setName(String name)
{
this.name = name;
}

public StudentNode getLeftNode()
{
return leftNode;
}

public void setLeftNode(StudentNode leftNode)
{
this.leftNode = leftNode;
}

public StudentNode getRightNode()
{
return rightNode;
}

public void setRightNode(StudentNode rightNode)
{
this.rightNode = rightNode;
}

public static void main(String[] args)
{
StudentNode root = new StudentNode();
root.setName("Name1");
StudentNode node2 = new StudentNode();
node2.setName("Name2");
StudentNode node3 = new StudentNode();
node3.setName("Name3");
StudentNode node4 = new StudentNode();
node4.setName("Name4");
StudentNode node5 = new StudentNode();
node5.setName("Name5");
StudentNode node6 = new StudentNode();
node6.setName("Name6");
StudentNode node7 = new StudentNode();
node7.setName("Name7");
//
// ****root***
// ***/ **\***
// **2 ****5**
// */ \ **/***
// 3 *4 **6***
// *******\***
// ********7**
//
root.setLeftNode(node2);
root.setRightNode(node5);
node2.setLeftNode(node3);
node2.setRightNode(node4);
node5.setLeftNode(node6);
node6.setRightNode(node7);

// 前序遍历1-2-3-4-5-6-7
rootFirst(root);
// 中序遍历3-2-4-1-6-7-5
rootMiddle(root);
// 后序遍历3-4-2-7-6-5-1
rootLast(root);
}

private static void rootFirst(StudentNode node)
{
System.out.println(node.getName());
if (null != node.getLeftNode())
{
rootFirst(node.getLeftNode());
}
if (null != node.getRightNode())
{
rootFirst(node.getRightNode());
}
}

private static void rootMiddle(StudentNode node)
{
if (null != node.getLeftNode())
{
rootMiddle(node.getLeftNode());
}
System.out.println(node.getName());
if (null != node.getRightNode())
{
rootMiddle(node.getRightNode());
}
}

private static void rootLast(StudentNode node)
{
if (null != node.getLeftNode())
{
rootLast(node.getLeftNode());
}
if (null != node.getRightNode())
{
rootLast(node.getRightNode());
}
System.out.println(node.getName());
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: