如下图,链表的每一个节点是由data 和next 指针构成。
树的每个节点,每个点都是由两个next 指针构成。
下面开始模拟构建树的节点
先创建 二叉树对象 类 TreeNode class
public class TreeNode{ private Integer data; private TreeNode left; //左节点 private TreeNode right; //右节点 public TreeNode(Integer data){ this.data = data; } //set get 方法 public Integer getData(){ return data; } public void setData(Integer data){ this.data = data; } public TreeNode getLeft(){ return left; } public void setData(TreeNode left){ this.left = left; } public TreeNode getRight() { return right; } public void setRight(TreeNode right) { this.right = right; } }
上边内容是用来创建 TreeNode 对象,main测试及两种遍历在下面。
下面,创建 MainTest 来测试一下
public static void main(String[] args) { //创建7个节点 TreeNode root = new TreeNode(1); TreeNode node2 = new TreeNode(2); TreeNode node3 = new TreeNode(3); TreeNode node4 = new TreeNode(4); TreeNode node5 = new TreeNode(5); TreeNode node6 = new TreeNode(6); TreeNode node7 = new TreeNode(7); //将这些节点够成一个二叉树 root.setLeft(node2); root.setRight(node3); node2.setLeft(node4); node2.setRight(node5); node3.setLeft(node6); node3.setRight(node7); //下面是测试一下这两种 遍历方式 广度遍历和深度遍历 System.out.println("按照广度遍历:"); printByLayer(root); //输出结果: 1 2 3 4 5 6 7 System.out.println("深度优先遍历的三种方式:") System.out.println("先序遍历:"); pre_print(root); System.out.println(""); System.out.println("中序遍历:"); mid_print(root); System.out.println(""); System.out.println("后序遍历:"); last_print(root); }//mian / / / public static void pre_print(TreeNode root) { if (root != null) { //节点不空,才输出 //根 System.out.print(root.getData()); System.out.print(" "); //左 if (root.getLeft() != null) { pre_print(root.getLeft()); } //右 if (root.getRight() != null) { pre_print(root.getRight()); } } }//pre_print() public static void mid_print(TreeNode root) { if (root != null){ //左 if (root.getLeft()!=null){ mid_print(root.getLeft()); } //根 System.out.print(" "); System.out.print(root.getData()); //右 if (root.getRight()!=null){ mid_print(root.getRight()); } } }//mid_print() public static void last_print(TreeNode root){ if (root!=null){ //左 if (root.getLeft()!=null){ last_print(root.getLeft()); } //右 if (root.getRight()!=null){ last_print(root.getRight());![请添加图片描述](https://img-blog.csdnimg.cn/21131c076b144dc7a88b96c6c731baa3.jpg?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAREtfMTAwMzI=,size_20,color_FFFFFF,t_70,g_se,x_16) } //根 System.out.print(root.getData()); System.out.print(" "); } }//last_print()
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)