博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java构建二叉树demo
阅读量:4180 次
发布时间:2019-05-26

本文共 1635 字,大约阅读时间需要 5 分钟。

public class BinTree {	private BinTree lChild;//左孩子	private BinTree rChild;//右孩子	private BinTree root;//根节点	private Object data;//数据域	public BinTree(){}	public BinTree(BinTree lChrild,BinTree rChild,Object data){		this.lChild = lChrild;		this.rChild = rChild;		this.data = data;	}	public BinTree(Object data){		this(null, null, data);	}		public void createTree(Object[] objects){		List
datas = new ArrayList<>();//存储所有节点 for(Object obj:objects){ datas.add(new BinTree(obj)); } root = datas.get(0);//将一个作为根节点 for(int i = 0;i < objects.length/2;i++){ datas.get(i).lChild = datas.get(2*i+1); if(2*i+2 < objects.length){//避免偶数的时候,下标越界 datas.get(i).rChild = datas.get(2*i+2); } } } //先序遍历 public void preorder(BinTree root){ if(root != null){ visit(root.getData()); preorder(root.lChild); preorder(root.rChild); } } //中序遍历 public void inorder(BinTree root){ if(root != null){ inorder(root.lChild); visit(root.getData()); inorder(root.rChild); } } public void afterorder(BinTree root){ if(root != null){ afterorder(root.lChild); afterorder(root.rChild); visit(root.getData()); } } private void visit(Object obj) { System.out.print(obj+" "); } private Object getData() { return data; } private BinTree getRoot() { return root; } public static void main(String[] args) { Object[] objs = {0,1,2,3,4,5,6,7}; BinTree binTree = new BinTree(); binTree.createTree(objs); binTree.inorder(binTree.getRoot());//7 3 1 4 0 5 2 6 System.out.println(); binTree.preorder(binTree.getRoot());//0 1 3 7 4 2 5 6 System.out.println(); binTree.afterorder(binTree.getRoot());//7 3 4 1 5 6 2 0 }}

 

转载地址:http://heqai.baihongyu.com/

你可能感兴趣的文章
程序员的职业素养
查看>>
一道面试题深入了解java底层
查看>>
java下载附件
查看>>
cron表达式每个月最后一天
查看>>
定时任务-在spring中配置quartz
查看>>
java枚举与常量类的区别
查看>>
sql之left join、right join、inner join的区别
查看>>
Oracle中Like与Instr模糊查询性能大比拼
查看>>
Lucene 实例教程(一)初识Lucene
查看>>
Lucene 实例教程(二)之IKAnalyzer中文分词器
查看>>
Lucene 实例教程(三)之操作索引
查看>>
Lucene 实例教程(四)之检索方法总结
查看>>
厉害的程序员相对于普通程序员,对于完成一个需求来说,除了更少的 bug,还有什么优势?
查看>>
MongoDB快速入门
查看>>
采用静态Map、ConcurrentHashMap处理缓存
查看>>
ehcache详细解析
查看>>
ehcache实战
查看>>
浅析MongoDB数据库的海量数据存储应用
查看>>
btrace使用
查看>>
Spring Boot入门===Hello World
查看>>