java二叉树创建以及遍历

来源:互联网 发布:怎么永久关闭淘宝店铺 编辑:程序博客网 时间:2024/06/14 16:41

学校发的数据结构书还不错,伪代码但是靠谱。最近要用java实现二叉树创建和遍历。不太喜欢那些网上代码。所以就自己结合书结合网上再结合一个人类的一点修改成功啦,细节很重要啊,差一点就是差很多。

实验要求:

1. 递归创建一棵二叉树;

2. 自定义一个Stack,实现二叉树的前序非递归遍历;

3. 实现二叉树的前序、中序递归遍历

只实现了创建和递归遍历。(1)




package BinaryTree;


import java.util.Scanner;


public class Test {


public static void main(String[] args) {

BinaryTree bint=new BinaryTree();
Treenode node=new Treenode();
Treenode node1;
System.out.println("请开始输入二叉树节点,输入0结束");
Scanner scan=new Scanner(System.in);
node1=bint.createbinarytree(node,scan);
System.out.println("output : The Binary tree node:");
bint.preoder(node1);
}
}
package BinaryTree;


import java.util.Scanner;


public class Treenode {


private String data=null;
    private Treenode lchild;
    private Treenode rchild;

public Treenode(String data) {

this.data = data;

}


public  Treenode() {

}


public Treenode(String data, Treenode lchild, Treenode rchild) {

this.data = data;
this.lchild = lchild;
this.rchild = rchild;
}


public String getData() {
return data;
}

public void setData(String data) {
this.data = data;
}

public Treenode getLchild() {
return lchild;
}

public Treenode setLchild(Treenode lchild) {
return this.lchild = lchild;
}

public Treenode getRchild() {
return rchild;
}

public Treenode setRchild(Treenode rchild) {
return this.rchild = rchild;
}



}

package BinaryTree;


import java.util.Scanner;


public class BinaryTree {
public static void main(String[] args) {

}


public Treenode createbinarytree(Treenode node,Scanner scan) {

    String tmp=scan.next();
if (tmp.equals("0")) //原为scan.next().equals(''0'')×
{
node = null;

else 
{


node = new Treenode(tmp);
{

node.setLchild(createbinarytree(node.getLchild(), scan));


node.setRchild(createbinarytree(node.getRchild(),scan));
}
}
return node;


}


public void preoder(Treenode node) {

if (node!=null)
{

preoder(node.getLchild());
System.out.println( node.getData());
preoder(node.getRchild());
}

}


}

总结:不会地方:递归创建时:1,不知道数据怎么传,传哪里?对二叉树理解不够还有对递归使用太少。

                                                         2,左右孩子创建由于是private也不会传,不会写。

                        不会调试,不会善于使用debug,

差一点真的差好多!希望谨记


原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 跑步时迎面骨疼怎么办 爬了楼梯小腿疼怎么办 走路走太多小腿酸痛怎么办 微信转账月限额怎么办 运动后小腿骨疼怎么办 用单杠练腹肌晃怎么办 一跑步小腿就紧怎么办 小腿一跑步就痛怎么办 单杠屈臂悬垂身体摆动怎么办 脸上被打了紫了怎么办 王者荣耀队友太坑怎么办 大脸不想戴泳帽怎么办 脐带掉了有血怎么办 颈椎不小心扭了怎么办 遇不到合适的人怎么办 老爸不爱吃饭身体不好怎么办 小朋友在日本旅游生病怎么办 小朋友不吃饭装生病怎么办 带小朋友去苏梅岛生病了怎么办 练完舞蹈腿疼怎么办 过度运动后肌肉特别酸痛怎么办 锻炼把脚扭伤了怎么办 生完孩子变胖了怎么办 喝了啤酒肚子撑怎么办 小孩把口香糖吞进肚子怎么办 臂力器手柄坏了怎么办 30臂力棒掰不动怎么办 杯子盖子拧紧了打不开怎么办 深蹲以后腿软怎么办 小孩摔跤破皮了怎么办 手机qq账号密码忘了怎么办 刚满月宝宝喷奶怎么办 两个月的宝宝不爱吃奶怎么办 仓鼠走路画圈了怎么办 力气大但扳手腕不行怎么办 只睡了两个小时怎么办 微博账号被冻结了怎么办 微博一天多次解冻怎么办 肿瘤对化疗不敏感怎么办 2个月宝宝肺炎怎么办 小孩咳嗽2个月怎么办