编译了一个晚上还是没通过的java程序

qsszs123 qsszs123 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
原题:已知以二叉链表做为存储结构,编写按层次顺序遍历二叉树的算法。

我的思路是:采用一个队列q,先将二叉树根结点入队列,然后退队列,输出该结点;若它有左子树,便将左子树根结点入队列;若它有右子树,便将右子树根结点入队列,如此直到队列空为止。

编译了一个晚上还是通不过.555555
哪位大哥帮忙看下,谢谢了

import java.io.*;
public class tree01
{ public static void main (String args[])throws IOException
{ int i;
int Index=1;
int Data;
int Vaule;
QueueArray Queue=new QueueArray();
BNTreeArray BNTree=new BNTreeArray();
System.out.println("please input the element of binary tree(Exil for 0):");
BufferedReader console=new BufferedReader(new InputStreamReader(System.in));
System.out.print("Data"+Index+":");
Data=Integer.parseInt(console.readLine());
BNTree.TreeData[0]=Data;
Index++;
while(true)
{

System.out.print("Data"+Index+":");
Data=Integer.parseInt(console.readLine());
if(Data==0)
break;
BNTree.Create(Data);
Index++;
}
System.out.print("The Leverorder Traversal result is[");
BNTree.Lateorder(0);
System.out.println("]");
}
}
class QueueArray
{int MaxSize=10;
int[]AQueue=new int[MaxSize];
int Front=-1;
int Rear=-1;
/*------将结点放入队列中------*/
public void AddQueue(int Value)
{ int i;
if (Rear>=MaxSize)
System.out.println("The Queue is full!");
else{
Rear++;
AQueue[Rear]=Value;}
}
/*------取出头结点------*/
public void DelQueue(int Value)
{int Temp;
if(Front==Rear)
{System.out.println("The stack is empty!!");
Value=-1;
}
Front++;
Temp=AQueue[Front];
Value=Temp;}
}
class BNTreeArray
{public static int MaxSize=16;
public static int[]TreeData=new int[MaxSize];
public static int[]RightNode=new int[MaxSize];
public static int[]LeftNode=new int[MaxSize];
public BNTreeArray()
{
int i; //循环计数变量
for(i=0;i<MaxSize;i++)
{TreeData[i]=0;
RightNode[i]=-1;
LeftNode[i]=-1;
}
}
/*------建立二叉树------*/
public void Create(int Data)
{int i;
int Level=0; //循环计数变量
int Position=0; //树的阶层树
for(i=0;TreeData[i]!=0;i++);
TreeData[i]=Data;
while(true)
{if (Data>TreeData[Level])
{
if (RightNode[Level]!=-1)
Level=RightNode[Level];
else
{Position=-1;
break;}
}
else {
if (LeftNode[Level]!=-1)
Level=LeftNode[Level];
else{
Position=1;
break;}
}
}
if (Position==1)
LeftNode[Level]=i;
else
RightNode[Level]=i;
}
/*----------------层次遍历二叉树---------*/
public static void Leverorder(int Pointer)
{ if(Pointer!=-1)
Queue.AddQueue(Pointer);
while(Front!=Rear) //队列非空
{Queue.DelQueue(Front); //删除队首元素
System.out.print(" "+TreeData[Front]+" ");}
if(LeftDate[Front]!=-1) //队首元素左子树非空
{Queue.AddQueue(LeftDate[Front]) ;} //左子树根结点存入队列
if(RightDate[Front]!=-1) //队首元素右子树非空
{Queue.AddQueue(RightDate[Front]) ;} //右子树根结点存入队列
}
}
...全文

相关推荐

VB用VB开发交互式CAD系统(源代码+系统+答辩PPT).rar

VB用VB开发交互式CAD系统(源代码+系统+答辩PPT).rar

「已注销」

VB 开发VB用VB开发交互式CAD系统(源代码+系统+答辩PPT).rar

VB 开发VB用VB开发交互式CAD系统(源代码+系统+答辩PPT)

温柔-的-女汉子

VB 开发用Visual Basic 开发交互式CAD系统(源代码+系统+答辩PPT).rar

VB 开发用Visual Basic 开发交互式CAD系统(源代码+系统+答辩PPT)

温柔-的-女汉子

VB用Visual Basic 开发交互式CAD系统(源代码+系统+答辩PPT).rar

计算机专业毕业设计VB精品论文资源

科技发烧友

毕设源码-VB用VB开发交互式CAD系统(源代码+系统+答辩PPT).rar

**VB交互式CAD系统** **资源介绍:** 本资源包含一个使用VB语言开发的交互式CAD系统的源代码、系统文件以及答辩PPT。该系统旨在提供一个直观、灵活的界面,使用户能够通过简单的操作进行二维图形的绘制、编辑和修改。系统基于VB.NET框架构建,充分利用了Visual Basic在图形处理方面的优势,同时结合了CAD软件的常用功能。 源代码结构清晰,注释详细,便于学习和二次开发。系统核心功能包括: 1. 基本的绘图工具,如直线、圆、圆弧等; 2. 图形编辑功能,如复制、粘贴、删除等; 3. 图层管理,支持图层的新建、重命名和删除; 4. 属性查看与编辑,方便用户查看和修改图形属性信息; 5. 文件操作,支持文件的打开、保存和打印输出。 答辩PPT详细介绍了项目的背景、设计思路、实现过程和主要功能,并展示了系统的实际运行效果。通过本资源,您可以快速掌握VB交互式CAD系统的设计和实现方法,并根据实际需求进行二次开发定制。

逃逸的卡路里
评论
收藏 已收藏
分享
返回顶部
qsszs123
数据结构与算法 33,026 成员 35,334 内容