没有合适的资源?快使用搜索试试~ 我知道了~
首页JAVA二叉树课设可以实现用户输入数据以二叉树图形表示出来
JAVA二叉树课设可以实现用户输入数据以二叉树图形表示出来

利用JAVA结合数据结构的思想实现二叉树的应用,用户可以在界面里任意输入数据,可以实现数据的二叉树图形表示,还可以实现增加,删除,查找节点等操作..
资源详情
资源评论
资源推荐

一、实验目的:
理解二叉树特别是完全二叉树的性质,熟练掌握二叉树的常用操作算法(初始化、插入
结点、删除结点等);通过熟知上述知识点,利用JAVA实现数据结构中二叉树的树形演示
效果。
二、实验内容:
要求采用二叉链表作为存储结构,完成二叉树的建立,实现数据结构中二叉树的图形化
表示。
具体要求如下:
①建立执行窗口;
②在窗口中实现用户随机输入数据;
③程序将用户随机输入的数据转化为二叉树图形化的树形结构显示出来;
④当用户执行插入操作时,由用户随机输入数据,可以显示出新的二叉树图形;
⑤当用户执行删除操作时,用户可以输入已有的数据实现删除,最终可以显示出新的二叉
树图形;
⑥附加功能:可以实现当前二叉树的数据查找和遍历操作。
三、实验步骤:
1、需求分析:
本演示程序用 JAVA 编写,完成二叉树的生成,用户随意输入数据,实现二叉树演示数据
的图形化,任意位置的插入、删除,以及遍历二叉树中的结点,查找和遍历二叉树中元素。
① 输入的形式和输入值的范围:插入元素时需要输入插入的元素的值;删除元素时输入删
除元素的值;遍历时采用三种遍历方法中的一种遍历方法;查找操作时,需要输入要查找
元素的值,在所有输入中,元素的值都是整数。
② 输出的形式:在所有四种操作中都显示操作是否正确以及操作后二叉树中的内容。其中
删除操作后显示删除的元素的值和二叉树图形,显示遍历二叉树中的元素和查找操作的值。
③ 程序所能达到的功能:完成二叉树的生成(通过插入操作)、插入、删除、遍历、查找
等操作。
④ 测试数据:
A. 可以预先在二叉树中加入已有以 50,25,75,12,37,43,30,33,87,93,97 为关键字的
结点
B. 插入操作中依次输入 10,20,30,40,50,60,70,80,90,100 十个数(可
以任意输入随机数据)
C. 删除操作中输入 10 删除值为 10 的元素
D. 查找操作中输入 20,30,40,50 返回这个元素在树中的位置
1

2.概要设计:
1)为实现窗口功能,需定义窗口的实现方法:(这次试验中未实现的功能)
public ButtonPanel(); //主要界面的显示大概布局
private void makeButton(); //实现界面中按键响应的操作方法
public void rdata() //文本输入的方法
public JTextField textstr; //输入框
public BinaryTree tree; //二叉排序树
public TreeDraw drawtree; //画二叉树模版
public static int nodesaving; //保存查询、增加节点数值
2)为了实现上述程序功能,需要定义二叉树的实现方法:
public int iData;
public double dData;
public Node leftChild;
public Node rightChild;
private Node root;int value;
private Node getSuccessor;
基本操作:{
Tree ()
操作结果:构造一个空的二叉树
insert ()
初始条件:是否存在一个空二叉树
操作结果:往二叉树中插入数值
delete ()
初始条件:存在一非空的二叉树
操作条件:将二叉树中的元素删除
displayTree ()
初始条件:存在一非空的树
操作条件:显示非空树中的所有元素的值
getString ()
初始条件:存在一非空的二叉树
操作结果:返回整个字符串的数值
getChar ()
初始条件:存在一非空的二叉树
操作结果:返回字符型的数值
getInt ()
初始条件:存在一非空的二叉树
操作结果:返回整型的数值
find ()
初始条件:存在一非空二叉树
操作结果:从二叉树中查找某一元素
2

traverse ()
初始条件:存在一非空的二叉树
操作结果:对二叉树中的元素进行遍历
preorder ()
初始条件:存在一非空的二叉树
操作结果:对二叉树中的元素进行先根遍历
inOrder ()
初始条件:存在一非空的二叉树
操作结果:对二叉树中的元素进行中根遍历
postOrder ()
初始条件:存在一非空的二叉树
操作结果:对二叉树中的元素进行后根遍历
DisplayNode ()
初始条件:存在一非空的二叉树
操作结果:显示出二叉树中的整形数值和双精度浮点型数值
public static void main
操作结果:调用主函数
3)本程序主要包含 14 个方法:
4)画二叉树的方法:(在试验中没有实现的方法)
public void LineDraw() //画出二叉树之间的节点连线方法
public void CircleDraw() //画出二叉树的园节点
public void TreeDraw() //画出二叉排序树图
public void paintComponent() //实现二叉树图像显示
main()
displayNode()
postorder()
delete()
tree()
insert()
preorder()
getInt()displayTree()
inorder()
getChar()
find()
traverse()
getString()
3

3.详细设计
实现概要设计中定义的所有的数据类型,对每个操作给出 java 算法。对主程序和其他模块
也都需要写出 java 算法。
1) 结点类型和指针类型
public int iData; //数据
public double dData; //数据在二叉树中的位置坐标
public Node leftChild; //树的左孩子节点
public Node rightChild; //树的有孩子节点
private Node root; //树的根节点
2)二叉树的基本操作
一、插入操作:
public void insert(int id, double dd) {
Node newNode = new Node();
newNode.iData = id;
newNode.dData = dd;
if (root == null)
root = newNode;
else {
Node current = root;
Node parent;
while (true) {
parent = current;
if (id < current.iData) {
current = current.leftChild;
if (current == null) {
parent.leftChild = newNode;
return;
}
} else {
current = current.rightChild;
if (current == null) {
parent.rightChild = newNode;
return;
}
}
}
}
}
4
剩余17页未读,继续阅读
















安全验证
文档复制为VIP权益,开通VIP直接复制

评论11