Java二叉树链表的简单实现(保存和取出)
来源:互联网 发布:java课程设计心得体会 编辑:程序博客网 时间:2024/05/12 19:41
简单的实现二叉树的添加保存和取值功能。利用Comapareble接口实现二叉树的对象数据比较,利用中序遍历的方法取得对象数组值并返回。
package test;class BinnaryTree{ //定义二叉树 private class Node{ private Comparable data; //定义要保存的数据,数据需要比较要实现Comparable private Node left; //定义左节点 private Node right; //定义右节点 public Node(Comparable data){ //保存数据 this.data = data; } public void addNode(Node newNode) { if(newNode.data.compareTo(this.data)>=0){ //传入的数据和当前节点数据比较,比它大则放右边小则放左边 if(this.right==null){ this.right = newNode; }else{ this.right.addNode(newNode); } }else{ if(this.left == null){ this.left = newNode; }else{ this.left.addNode(newNode); } } } public void toArrayNode() { //采用中序遍历的方法取值 if(this.left!=null){ this.left.toArrayNode(); } BinnaryTree.this.retArray[BinnaryTree.this.foot++] = this.data; if(this.right != null){ this.right.toArrayNode(); } } } private Node root = null; //定义根节点 private int count = 0; //定义一个数据值 private int foot = 0; //定义下标,数组索引下标取值时使用 private Object retArray[]; public void add(Object data){ //增加数据 if(data==null){ return ; } Node newNode = new Node((Comparable)(data)); //向下转型,如果不是Comparable对象的子类则抛出异常 if(this.root == null){ this.root = newNode; }else{ this.root.addNode(newNode); } this.count++; } public boolean isEmpty(){ //判断是否为空 return this.count==0 && this.root==null; } public int size(){ //取得当前二叉树的长度 return this.count; } public Object[] toArray(){ //通过Object对象数组取值 if(this.isEmpty()){ return null; } retArray = new Object[this.count]; this.foot = 0; this.root.toArrayNode(); return this.retArray; }}public class Test { //定义测试类 public static void main(String[] args) { BinnaryTree bt = new BinnaryTree(); bt.add("C"); bt.add("B"); bt.add("W"); bt.add("E"); bt.add("G"); bt.add("H"); bt.add("A"); bt.add("N"); System.out.println("二叉树是否为空:"+bt.isEmpty()+",总共有"+bt.size()+"个数据"); Object[] obj = bt.toArray(); for (int i=0; i<obj.length ; i++){ String str = (String)obj[i]; System.out.println(str); } }}
0 0
- Java二叉树链表的简单实现(保存和取出)
- 数据结构(JAVA)---二叉树的简单实现及排序
- 简单二叉搜索树的JAVA实现。
- java实现简单的二叉树
- Java实现简单的二叉树
- java实现简单的二叉树
- java中简单二叉树的实现
- 简单二叉树的实现和遍历
- 安卓数据的文件保存和取出
- java简单实现二叉树插入和遍历
- Java实现简单二叉树
- java 二叉树的实现 和遍历
- 二叉树的java实现和遍历
- 二叉查询树的保存和读取(Serialization/Deserialization)
- Java实现带行号层序遍历二叉树的变种问题(使用二维数组保存)
- java小文本简单保存和装载的例子
- vue2实现简单的商品加入购物车和结算功能(前端数据保存方向)
- 简单笔画轨迹的绘制,并通过保存轨迹点,实现Path的保存和恢复。
- 面向对象编程
- poj3694Network(lca+边双连通缩点)
- 【汇编】superIO 信息读取
- IPTV流媒体技术 MPEG2 TS与ISMA 比较
- NYOJ 171 聪明的KK
- Java二叉树链表的简单实现(保存和取出)
- Android开发之玩转FlexboxLayout布局
- hdu2181 哈密顿绕行世界问题 (dfs)
- Ant+Jmeter自动化接口测试
- Hive UDF开发
- Android开发之RecyclerView的使用全解
- jQuery-选择器
- poj 3274 Gold Balanced Lineup
- OSG环境下,使用glsl的几何着色器,绘制带纹理的三角形