直观地打印二叉树
来源:互联网 发布:鹰眼行车记录仪软件 编辑:程序博客网 时间:2024/06/06 04:20
/** * Created by lxw, liwei4939@126.com on 2017/10/26. */public class PrintBinaryTree { public static class Node{ public int value; public Node left; public Node right; public Node(int data){ this.value = data; } } public static void printTree(Node head){ System.out.println("Binary Tree:"); printInOrder(head, 0, "H", 17); System.out.println(); } public static void printInOrder(Node head, int height, String to, int len){ if(head == null) return; printInOrder(head.right, height+1,"v", len); String val = to + head.value + to; int lenM = val.length(); int lenL = (len - lenM)/2; int lenR = len-lenM - lenL; val = getSpace(lenL) + val + getSpace(lenR); System.out.println(getSpace(height*len) + val); printInOrder(head.left, height+1, "^",len); } public static String getSpace(int num){ String space = " "; StringBuffer buf = new StringBuffer(""); for(int i=0; i<num; i++){ buf.append(space); } return buf.toString(); } public static void main(String[] args){ Node[] NArr = new Node[7]; for(int i=0; i<NArr.length; i++){ NArr[i] = new Node(i+1); } Node head = NArr[0]; head.left = NArr[1]; head.right = NArr[2]; NArr[1].left = NArr[3]; NArr[2].left = NArr[4]; NArr[2].right = NArr[5]; NArr[3].right = NArr[6]; printTree(head); }}
阅读全文
0 0
- 直观地打印二叉树
- 直观地打印二叉树
- 直观地打印二叉树
- 二叉树问题---较为直观的打印二叉树
- 二叉树反序列化与直观打印
- java实现二叉树(打印直观,易于理解)
- 一个遍历二叉树的直观方法
- 【二叉树】二叉树打印
- 分层打印二叉树
- ZigZag打印二叉树
- 分层打印二叉树
- 横向打印二叉树
- 用凹入表打印二叉树
- 完美打印二叉树
- 逐行打印二叉树
- 之字形打印二叉树
- 层次打印二叉树
- 之字形打印二叉树
- keras optimizers 默认学习率
- Unity UGUI 鼠标穿透UI问题
- 网站性能评分工具Yslow 使用教程
- 2017-10-26
- plsql解决中文乱码问题
- 直观地打印二叉树
- sh脚本编程简介
- C++构造与析构(18)
- Hive SQL 练习
- C#路径中获取文件全路径、目录、扩展名、文件名称
- 解决python27 matplotlib 中文不显示问题
- 支付宝app支付java服务端
- Promise封装ajax请求
- 3个基于Java的Blockchain库