用java实现的二叉树的创建和遍历问题,数据是由外部输入的。

问题描述

可是总是输出第一个数字,我查了好久就是不懂哪里出了问题?下面是我的代码:Javacodeimportjava.util.*;publicclassBTree{privatestaticTreeNodetreeNode;publicBTree(TreeNodetreeNode){this.treeNode=treeNode;}publicTreeNodegetRootNode(){returntreeNode;}privatestaticclassTreeNode{privateintelement;//每个节点的值privateTreeNodeleft_node;//左节点privateTreeNoderight_node;//右节点publicTreeNode(){}publicTreeNode(intelement){this(element,null,null);}publicTreeNode(intelement,TreeNodelt,TreeNodert){this.element=element;this.left_node=lt;this.right_node=rt;}publicintgetElement(){returnelement;}privatevoidsetElement(intelement){this.element=element;}publicvoidsetLeft_node(TreeNodeleft_node){this.left_node=left_node;}publicTreeNodegetLeft_node(){returnleft_node;}publicvoidsetRight_node(TreeNoderight_node){this.right_node=right_node;}publicTreeNodegetRight_node(){returnright_node;}}publicstaticTreeNodecreateTree(TreeNoderoot){intelement;Scannersc=newScanner(System.in);element=sc.nextInt();if(element==-1)root=null;else{root=newTreeNode();root.setElement(element);createTree(root.getLeft_node());createTree(root.getRight_node());}returnroot;}//先根遍历树publicstaticvoidpreOrder(TreeNoderoot){if(root!=null){System.out.print(root.getElement());preOrder(root.getLeft_node());preOrder(root.getRight_node());}}//主函数入口publicstaticvoidmain(String[]args){System.out.println("请输入数据:");TreeNodetreeNode=newTreeNode();BTreetree=newBTree(createTree(treeNode));preOrder(tree.getRootNode());}}

时间: 2024-10-01 14:55:55

用java实现的二叉树的创建和遍历问题,数据是由外部输入的。的相关文章

关于二叉树的创建与遍历 请问哪里有问题我的代码

问题描述 关于二叉树的创建与遍历 请问哪里有问题我的代码 先输入一个字符串 然后求先中后序遍历http://paste.ubuntu.org.cn/4213378 #include #include char w[100]; struct node { char data; struct node *l; struct node *r; }; void creat(struct node *&T,char *w) { char ch;int p; ch=*w; if(ch=='') p=1; i

求助!一个二叉树程序创建和遍历的程序

问题描述 求助!一个二叉树程序创建和遍历的程序 #include #include typedef char ElementType; typedef struct BiNode{ ElementType data; struct BiNode * lchild; struct BiNode * rchild; }BiNode; void CreatBiTree2(BiNode * T); void PreTraverBiTree(BiNode const * T); int main() {

c语言-有关C语言中基于全局变量对二叉树的创建和遍历的问题

问题描述 有关C语言中基于全局变量对二叉树的创建和遍历的问题 #include#include#define max 100typedef struct node{ char date; struct node lchild*rchild;}tree*TREE;tree *DLR=NULL;void creatDLR() { //先序递归方式创建树 char date; date=getchar(); if(date=='#')DLR=NULL; else { if(!(DLR=(tree)ma

请问这个二叉树的创建和遍历什么地方出了问题?麻烦只要说出问题就行了,不要发新程序。

问题描述 请问这个二叉树的创建和遍历什么地方出了问题?麻烦只要说出问题就行了,不要发新程序. #include #include #define NULL 0 struct btree { char data; btree *lchild; btree *rchild; }; void displaybtree(btree *t); btree *createbtree(btree *t); void main() { btree *t1,*t2;t1=(btree *)malloc(sizeo

Java实现二叉树的创建和遍历操作(有更新)

博主强烈建议跳过分割线前面的部分,直接看下文更新的那些即可. 最近在学习二叉树的相关知识,一开始真的是毫无头绪.本来学的是C++二叉树,但苦于编译器老是出故障,于是就转用Java来实现二叉树的操作.但是二者原理是一致的,而且实现的方式也是大同小异! 下面就让我们来看看代码吧. 1.首先我们需要创建一个二叉树的节点类,便于我们对树的操作,当然了,你也可以在二叉树类的内部将节点类声明为内部类,但是这样会降低操作的灵活性.我才用的是单独创建一个BinaryTreeNode类,代码如下: package

二叉树的创建与遍历(递归版本)

非递归方式实现二叉树的创建与搜索,对于二叉树通常约定以前序遍历方式输入,若输入不正确是不会有什么显示的,这点要注意: 给出了C语言创建链表的俩种方式(不同于C++中引用传递) 一 创建二叉树方式: 方式一:输入指针 [cpp] view plain copy   void creatBT(BiTree *T)//建立一个二叉树   {       char ch;       scanf("%c",&ch);//读入字符       if(ch=='.')//.代表空子树  

c++-C++有关二叉树创建与遍历,求大神指点

问题描述 C++有关二叉树创建与遍历,求大神指点 . [问题描述] 根据输入提示,构建二叉树.本题目中,对所有节点进行编号 [输入形式] 第一行整数m,表示二叉树中共有m个非空节点 第二行m个整数,表示编号节点对应的value值,编号从1到m 后面一共m行,表示编号节点的左右子节点编号,0表示对应位置的子节点不存在 [输出形式] 按先序输出格式输出二叉树 [样例输入] 8 10 4 3 9 2 5 6 7 1 2 3 2 0 4 3 5 6 4 7 0 5 0 0 6 0 8 7 0 0 8 0

char-二叉树的创建和遍历,编译成功了不知道在运行窗口输入什么。大神帮我看看

问题描述 二叉树的创建和遍历,编译成功了不知道在运行窗口输入什么.大神帮我看看 //***********先序建立二叉树中的节点 ****************** void CreatBiTree(BiTree *T) { char ch; fflush(stdin); if((ch = getchar()) == 'n') *T = NULL; else { (*T)=(BiTNode *)malloc(sizeof(BiTNode)); if(!(*T)) exit(1); (*T)->

Java实现表达式二叉树_java

什么是二叉树,这里不再介绍,可以自行百度:二叉树.在这里利用java实现"表达式二叉树".  表达式二叉树的定义  第一步先要搞懂表达式二叉树是个什么东东?举个栗子,表达式:(a+b×(c-d))-e/f.将数字放在叶子节点,将操作符放在分支节点,就构成了一个二叉树,由于存储的是一个表达式,称之为"表达式二叉树". 童靴们可能好奇这个到底是怎么构建的?就拿45+23*56/2-5来说吧.首先取出第一个数字45放在叶子节点,遇到"+"后将其放到分支