用java语言编写的简单二叉树
package com.cjonline.foundation.evisa;
public class TestTree {
private int data=-1;
private TestTree lchild=null;
private TestTree rchild=null;
private int pos=-1; //记录当前已经使用数组的位置
/*
* 构造二叉树
*/
public TestTree createTree(TestTree tree,int[] data){
if(data == null || data.length<1)
return null;
tree = new TestTree();
pos++;
if(pos<data.length && data[pos]!=-1){
tree.data=data[pos];
tree.setLchild(createTree(lchild,data));//设置左孩子
tree.setRchild(createTree(rchild,data));//设置右孩子
}
return tree;
}
/*
* 前序遍历
*/
public void print(TestTree t){
if(t!=null && t.getData()!=-1){
System.out.print(" "+t.getData());
print(t.getLchild());
print(t.getRchild());
}
}
@Override
public String toString() {
return "TestTree [data=" + data + "]";
}
public static void main(String[] args) {
TestTree tree = new TestTree();
int[] data = {1,2,-1,-1,3,-1,-1};
tree=tree.createTree(tree, data);
System.out.println(tree);
System.out.println(tree.getLchild());
System.out.println(tree.getRchild());
tree.print(tree);
}
/**
* 获取data
* @return
*/
public int getData() {
return data;
}
/**
* 设置 data
* @param data
*/
public void setData(int data) {
this.data = data;
}
/**
* 获取lchild
* @return
*/
public TestTree getLchild() {
return lchild;
}
/**
* 设置 lchild
* @param lchild
*/
public void setLchild(TestTree lchild) {
this.lchild = lchild;
}
/**
* 获取rchild
* @return
*/
public TestTree getRchild() {
return rchild;
}
/**
* 设置 rchild
* @param rchild
*/
public void setRchild(TestTree rchild) {
this.rchild = rchild;
}
/**
* 获取pos
* @return
*/
public int getPos() {
return pos;
}
/**
* 设置 pos
* @param pos
*/
public void setPos(int pos) {
this.pos = pos;
}
}
用java语言编写的简单二叉树的更多相关文章
- 第二次作业利用java语言编写计算器进行四则运算
随着第一次作业的完成,助教 牛老师又布置了第二次作业:用java语言编写一个程序然后进行四则运算用户用键盘输入一个字符来结束程序显示统计结果.一开始看到这个题目我也着实吓了一跳 因为不知道如何下手而且 ...
- 使用java语言编写窗口按钮
使用java语言编写窗口按钮 代码如下: package Day08; import java.awt.FlowLayout; import javax.swing.JButton;import ja ...
- 用C语言编写一个简单的词法分析程序
问题描述: 用C或C++语言编写一个简单的词法分析程序,扫描C语言小子集的源程序,根据给定的词法规则,识别单词,填写相应的表.如果产生词法错误,则显示错误信息.位置,并试图从错误中恢复.简单的恢复方法 ...
- Atiitt 使用java语言编写sql函数或存储过程
Atiitt 使用java语言编写sql函数或存储过程 1.1. java编写sql函数或存储过程的机制1 1.2. Java编写sp的优点1 1.3. 支持java源码,class文件,blog f ...
- Fastjson是一个Java语言编写的高性能功能完善的JSON库。
简介 Fastjson是一个Java语言编写的高性能功能完善的JSON库. 高性能 fastjson采用独创的算法,将parse的速度提升到极致,超过所有json库,包括曾经号称最快的jackson. ...
- 使用Java语言编写一个五子棋UI界面并实现网络对战功能(非局域网)
使用Java语言编写一个五子棋UI界面并实现网络对战功能(非局域网) 一,前期准备 1,Java IDE(Eclipse)与JDK的安装与配置jdk-15.0.1-免配置路径版提取码:earu免安装版 ...
- 用Java语言编写一个简易画板
讲了三篇概博客的概念,今天,我们来一点实际的东西.我们来探讨一下如何用Java语言,编写一块简易的画图板. 一.需求分析 无论我们使用什么语言,去编写一个什么样的项目,我们的第一步,总是去分析这个项目 ...
- 用 C 语言编写一个简单的垃圾回收器
人们似乎觉得编写垃圾回收机制是非常难的,是一种仅仅有少数智者和Hans Boehm(et al)才干理解的高深魔法.我觉得编写垃圾回收最难的地方就是内存分配,这和阅读K&R所写的malloc例 ...
- java语言编写矩阵的四则运算
题目要求如下: 设计程序实现矩阵的四则运算 设计要求: (1) 实现矩阵的四则运算. (2) 考虑实现带变元的矩阵计算. (3)考虑实现矩阵的特征值和特征向量的计算. 我使用java语言写的 目录结构 ...
随机推荐
- 6个Unity 开源项目分享!
http://gad.qq.com/article/detail/38279?sessionUserType=BFT.PARAMS.249034.TASKID&ADUIN=991655778& ...
- 飞檐走壁navMesh
http://www.manew.com/thread-106030-1-1.html
- Nmap原理02 - 版本探测介绍(上)
Nmap原理02 - 版本探测介绍(上) 1.介绍 本文将介绍如何通过修改或添加nmap-service-probes文件来实现对nmap中未知服务的探测,首先介绍服务和版本探测的相关信息,然后介绍服 ...
- CentOS 6.5 安装MySQL数据库
CentOS 6.5 安装MySQL数据库 [root@seeker~]# yum -y install mysql-server //安装命令 [root@seeker~]# service mys ...
- LaTex 2
LaTex 入门 此时是否安装成功 如果安装成功了LaTeX, 那么在计算机上会多出来LaTeX的编译器, LaTex Live 安装包在计算机上安装了多个不同的编译器, 有latex, xelate ...
- 用jquery来实现正反选选择框checkbox的小示例
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Mysql5.7的安装配置问题
前些日子安装和配置mysql,遇到一些问题,在这里记录一下. 1.首先,把zip的mysql解压. 2.设置环境变量PATH中添加你的mysql解压目录. 3.在mysql根目录下新建my.ini文件 ...
- Html5的localStorage与sessionStorage五种循序渐进的使用方法
需求:本地记录用户上次输入的内容 使用关键技术:localStorage 第一步:使用jQuery的普通写法 1.JS代码 // 获取window的localStorage对象 var localS ...
- PhoneGap API介绍:Events
事件类型: backbutton deviceready menubutton pause resume searchbutton online offline backbutton 当用户在Andr ...
- python多重继承
# 动物 Dog - 狗狗: Bat - 蝙蝠: Parrot - 鹦鹉: Ostrich - 鸵鸟. # 哺乳动物 鸟类 # 能跑 能飞 class Animal(object): pass # 大 ...