BiTree显示Test.java
来源:互联网 发布:python idle下载 编辑:程序博客网 时间:2024/06/05 10:28
package A类有价值的回顾的;public class BiTreeTest { public static void main(String[] args){ BiTree root = new BiTree(1); root.add(new BiTree(2)); root.add(new BiTree(27)); root.add(new BiTree(4)); root.add(new BiTree(55)); root.add(new BiTree(6)); root.add(new BiTree(7)); root.add(new BiTree(85)); root.add(new BiTree(9)); //root.mid_trav(); root.show(); }}class BiTree {//二叉树本来就是递归定义的,所以用递归来做非常方便 private int v; private BiTree l; private BiTree r; public BiTree(int x){ v = x; } public void add(BiTree b){ if(b.v < v){ if(l == null) l = b;//如果能插就插进去,不能插再递归 else l.add(b); } else{ if(r == null) r = b; else r.add(b); } } public void mid_trav(){//递归类型的中序遍历,还有前序遍历 if(l != null) l.mid_trav(); System.out.println(v); if(r != null) r.mid_trav(); } private int getWith(){ int w = (" "+v).length(); if(l!=null) w += l.getWith(); if(r!=null) w += r.getWith(); return w; } private int getRootPos(int x){ return (l==null) ? x:x+l.getWith(); } //x,y相当于 /--3----\ 起点所在的横纵坐标 private void printInBuf(char[][] buf,int x,int y){ String sv = " "+ v; int p1 = (l==null)? x :l.getRootPos(x); int p2 = getRootPos(x); int p3 = (r==null)? p2:r.getRootPos(p2+sv.length()); buf[y][p2] = '|'; for(int i= p1;i<p3;i++) buf[y+1][i] = '-'; for(int i=0;i<sv.length();i++) buf[y+1][p2+i] = sv.charAt(i); //用数字覆盖掉'-' if(p1<p2) buf[y+1][p1] ='/'; if(p3>p2) buf[y+1][p3] ='\\';//必须要转义 if(l!=null) l.printInBuf(buf, x, y+2);//再从y+2往下递归 if(r!=null) r.printInBuf(buf, p2+sv.length(), y+2); } public int getHeigth(){ int h=2; int hl= l==null?0:l.getHeigth(); int hr= r==null?0:r.getHeigth(); return h+Math.max(hl, hr); } private void showBuf(char[][] x){ for(int i=0;i<x.length;i++){ for(int j=0;j<x[i].length;j++){ System.out.print(x[i][j]==0?' ':x[i][j]); //char ch='0'; ch的值是字符'0'的ascii码值,即0x30 //char未初始化的话赋值为0 } System.out.println(); } } public void show(){ char[][] buf = new char[getHeigth()][getWith()]; printInBuf(buf, 0, 0); showBuf(buf); }}
阅读全文
0 0
- BiTree显示Test.java
- BiTree
- Bitree
- biTree
- bitnode bitree
- BiTree &T 和Bitree T
- Rebuild BiTree & BFS
- java Test
- Test Java
- Java test
- java test
- Test.java
- Maven项目中不显示src/main/java和src/test/java
- C++test安装显示英文
- 解决 eclipse 新建 maven 后无法显示 src/main/java 和 src/main/test
- Java Collection Framework Test
- Java Test Tools
- Java Test One
- 工作总结
- 设计模式
- 企业应用系统由oracle迁移到阿里云mysql数据库的思考
- IO流
- 【ACM】P2030、P2031、P2032、P2033、P2034代码演示
- BiTree显示Test.java
- IO
- bzoj 2748 [HAOI2012]音量调节
- springmvc中@requestbody注解接收请求参数
- 如何在 HTTP 头中隐藏 PHP 版本号
- 机器学习:数据驱动的科学
- 【Orange Pi PC试用体验】11编译android源码笔记
- 一天学一点技术
- 栈的压入和弹出序列