直观地打印二叉树
来源:互联网 发布:淘宝魔镜怎么使用 编辑:程序博客网 时间:2024/06/05 14:34
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 head = new Node(1);head.left = new Node(-222222222);head.right = new Node(3);head.left.left = new Node(Integer.MIN_VALUE);head.right.left = new Node(55555555);head.right.right = new Node(66);head.left.left.right = new Node(777);printTree(head);head = new Node(1);head.left = new Node(2);head.right = new Node(3);head.left.left = new Node(4);head.right.left = new Node(5);head.right.right = new Node(6);head.left.left.right = new Node(7);printTree(head);head = new Node(1);head.left = new Node(1);head.right = new Node(1);head.left.left = new Node(1);head.right.left = new Node(1);head.right.right = new Node(1);head.left.left.right = new Node(1);printTree(head);}}
阅读全文
0 0
- 直观地打印二叉树
- 直观地打印二叉树
- 直观地打印二叉树
- 二叉树问题---较为直观的打印二叉树
- 二叉树反序列化与直观打印
- java实现二叉树(打印直观,易于理解)
- 一个遍历二叉树的直观方法
- 【二叉树】二叉树打印
- 分层打印二叉树
- ZigZag打印二叉树
- 分层打印二叉树
- 横向打印二叉树
- 用凹入表打印二叉树
- 完美打印二叉树
- 逐行打印二叉树
- 之字形打印二叉树
- 层次打印二叉树
- 之字形打印二叉树
- Android 中图片压缩分析(上)
- javaweb中Filter和Servlet的url-pattern配置解析
- php安装imagick问题解决
- .NET 异步方法async await
- 并发编程之ThreadLocal、Volatile、synchronized、Atomic关键字扫盲
- 直观地打印二叉树
- EXCEL读
- 【转】Eclipse SVN冲突详细解决方案
- Nginx负载均衡+反向代理+监控状态检测
- Git自定义配置
- 换行符javajava去除字符串中的空格、回车、换行符、制表符
- 使用VMware Vconverter从物理机迁移系统到虚拟机盘p2v
- Oracle数据库中,当前用户操作其他表空间的table
- java面试的常见题目