数据结构(JAVA)---二叉树的简单实现及排序

树是数据在内存中的一种常见结构,其中的二叉树呢,又是比较有代表性的;

1、区分二叉树:只有左子树和右子树,最大度数为2;

2、区分三种排序方式:先序、中序、后序---之前这个问题苦恼了很久,老是分不清该如何进行排序,尤其是三种放了一起之后,后来渐渐发现,其他这三种排序时相对于中间节点而言的,也就是双亲节点或者根节点;先序呢,就是先排中间节点,再排左节点, 再排右节点;中序呢,就是先左,后中,后右,中间节点的排序顺序在中间;后序呢,就是先左后右最后中;下边是三种排序的简单实现:

	class MyTree{
		
		private int data ;   // 普通属性
		
		private MyTree left ;
		
		private MyTree right ;
		
		public MyTree(int data){
			
			this.data = data ;
		}
		/**
		 * 增加节点  小的在左,大的在右
		 * @param t
		 */
		public void add(MyTree t){
			
			if(t.data < this.data){
				if(left==null)
					left = t;
				else
					left.add(t);
			}
			else{
				if(right==null)
					right = t;
				else
					right.add(t);
			}
			
		}
		/**
		 * 先序排列  中-->左-->右
		 */
		public void frontSort(){
			System.out.print(data+"\t");
			if (left !=null) left.frontSort();
			if (right !=null) right.frontSort();
		}
		/**
		 * 中序排列  左-->中-->右
		 */
		public void centerSort(){
			if (left !=null) left.centerSort();
			System.out.print(data+"\t");
			if (right !=null) right.centerSort();
		}
		/**
		 * 后序排列  左-->右-->中
		 */
		public void endSort(){
			if (left !=null) left.endSort();
			if (right !=null) right.endSort();
			System.out.print(data+"\t");
		}
	}
public class Tested {
	public static void main(String[] args) {
		MyTree t = new MyTree(12);
		t.add(new MyTree(9));
		t.add(new MyTree(5));
		t.add(new MyTree(10));
		t.add(new MyTree(15));
		t.add(new MyTree(20));
		System.out.println("先序排列:");
		t.frontSort();
		System.out.println();
		System.out.println("中序排列:");
		t.centerSort();
		System.out.println();
		System.out.println("后序排列:");
		t.endSort();
		
	}
}

 


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值