「Java实验树」Java实验一

博主:adminadmin 2023-01-07 11:21:06 657

本篇文章给大家谈谈Java实验树,以及Java实验一对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java中如何建立一个java树,请详解?

import java.awt.*;

import javax.swing.*;

class TreeDemo extends JFrame

{

public TreeDemo()

{

setSize(400,300);

setTitle("演示怎样使用JTree");

show();

JScrollPane jPanel=new JScrollPane();

getContentPane().add(jPanel);

JTree jtree=new JTree();

jPanel.getViewport().add(jtree,null);

validate();

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

}

public class Example5_25

{

public static void main(String[] args)

{

TreeDemo frame=new TreeDemo();

}

}

其中JScrollPane是一个带滚动条的面板类。

将对象加入到带滚动条的面板类中,在将已建的数放入到其中。

就可建立一个系统默认的树结构。

用java实现二叉树

我有很多个(假设10万个)数据要保存起来,以后还需要从保存的这些数据中检索是否存在某

个数据,(我想说出二叉树的好处,该怎么说呢?那就是说别人的缺点),假如存在数组中,

那么,碰巧要找的数字位于99999那个地方,那查找的速度将很慢,因为要从第1个依次往

后取,取出来后进行比较。平衡二叉树(构建平衡二叉树需要先排序,我们这里就不作考虑

了)可以很好地解决这个问题,但二叉树的遍历(前序,中序,后序)效率要比数组低很多,

public class Node {

public int value;

public Node left;

public Node right;

public void store(intvalue)

right.value=value;

}

else

{

right.store(value);

}

}

}

public boolean find(intvalue)

{

System.out.println("happen" +this.value);

if(value ==this.value)

{

return true;

}

else if(valuethis.value)

{

if(right ==null)returnfalse;

return right.find(value);

}else

{

if(left ==null)returnfalse;

return left.find(value);

}

}

public void preList()

{

System.out.print(this.value+ ",");

if(left!=null)left.preList();

if(right!=null) right.preList();

}

public void middleList()

{

if(left!=null)left.preList();

System.out.print(this.value+ ",");

if(right!=null)right.preList();

}

public void afterList()

{

if(left!=null)left.preList();

if(right!=null)right.preList();

System.out.print(this.value+ ",");

}

public static voidmain(String [] args)

{

int [] data =new int[20];

for(inti=0;idata.length;i++)

{

data[i] = (int)(Math.random()*100)+ 1;

System.out.print(data[i] +",");

}

System.out.println();

Node root = new Node();

root.value = data[0];

for(inti=1;idata.length;i++)

{

root.store(data[i]);

}

root.find(data[19]);

root.preList();

System.out.println();

root.middleList();

System.out.println();

root.afterList();

}

}

求数据结构(JAVA版)实验树和二叉树题目答案

/**

* @param args

之前在大学的时候写的一个二叉树算法,运行应该没有问题,就看适不适合你的项目了 */

public static void main(String[] args) {

BiTree e = new BiTree(5);

BiTree g = new BiTree(7);

BiTree h = new BiTree(8);

BiTree l = new BiTree(12);

BiTree m = new BiTree(13);

BiTree n = new BiTree(14);

BiTree k = new BiTree(11, n, null);

BiTree j = new BiTree(10, l, m);

BiTree i = new BiTree(9, j, k);

BiTree d = new BiTree(4, null, g);

BiTree f = new BiTree(6, h, i);

BiTree b = new BiTree(2, d, e);

BiTree c = new BiTree(3, f, null);

BiTree tree = new BiTree(1, b, c);

System.out.println("递归前序遍历二叉树结果: ");

tree.preOrder(tree);

System.out.println();

System.out.println("非递归前序遍历二叉树结果: ");

tree.iterativePreOrder(tree);

System.out.println();

System.out.println("递归中序遍历二叉树的结果为:");

tree.inOrder(tree);

System.out.println();

System.out.println("非递归中序遍历二叉树的结果为:");

tree.iterativeInOrder(tree);

System.out.println();

System.out.println("递归后序遍历二叉树的结果为:");

tree.postOrder(tree);

System.out.println();

System.out.println("非递归后序遍历二叉树的结果为:");

tree.iterativePostOrder(tree);

System.out.println();

System.out.println("层次遍历二叉树结果: ");

tree.LayerOrder(tree);

System.out.println();

System.out.println("递归求二叉树中所有结点的和为:"+getSumByRecursion(tree));

System.out.println("非递归求二叉树中所有结点的和为:"+getSumByNoRecursion(tree));

System.out.println("二叉树中,每个节点所在的层数为:");

for (int p = 1; p = 14; p++)

System.out.println(p + "所在的层为:" + tree.level(p));

System.out.println("二叉树的高度为:" + height(tree));

System.out.println("二叉树中节点总数为:" + nodes(tree));

System.out.println("二叉树中叶子节点总数为:" + leaf(tree));

System.out.println("二叉树中父节点总数为:" + fatherNodes(tree));

System.out.println("二叉树中只拥有一个孩子的父节点数:" + oneChildFather(tree));

System.out.println("二叉树中只拥有左孩子的父节点总数:" + leftChildFather(tree));

System.out.println("二叉树中只拥有右孩子的父节点总数:" + rightChildFather(tree));

System.out.println("二叉树中同时拥有两个孩子的父节点个数为:" + doubleChildFather(tree));

System.out.println("--------------------------------------");

tree.exChange();

System.out.println("交换每个节点的左右孩子节点后......");

System.out.println("递归前序遍历二叉树结果: ");

tree.preOrder(tree);

System.out.println();

System.out.println("非递归前序遍历二叉树结果: ");

tree.iterativePreOrder(tree);

System.out.println();

System.out.println("递归中序遍历二叉树的结果为:");

tree.inOrder(tree);

System.out.println();

System.out.println("非递归中序遍历二叉树的结果为:");

tree.iterativeInOrder(tree);

System.out.println();

System.out.println("递归后序遍历二叉树的结果为:");

tree.postOrder(tree);

System.out.println();

System.out.println("非递归后序遍历二叉树的结果为:");

tree.iterativePostOrder(tree);

System.out.println();

System.out.println("层次遍历二叉树结果: ");

tree.LayerOrder(tree);

System.out.println();

System.out.println("递归求二叉树中所有结点的和为:"+getSumByRecursion(tree));

System.out.println("非递归求二叉树中所有结点的和为:"+getSumByNoRecursion(tree));

System.out.println("二叉树中,每个节点所在的层数为:");

for (int p = 1; p = 14; p++)

System.out.println(p + "所在的层为:" + tree.level(p));

System.out.println("二叉树的高度为:" + height(tree));

System.out.println("二叉树中节点总数为:" + nodes(tree));

System.out.println("二叉树中叶子节点总数为:" + leaf(tree));

System.out.println("二叉树中父节点总数为:" + fatherNodes(tree));

System.out.println("二叉树中只拥有一个孩子的父节点数:" + oneChildFather(tree));

System.out.println("二叉树中只拥有左孩子的父节点总数:" + leftChildFather(tree));

System.out.println("二叉树中只拥有右孩子的父节点总数:" + rightChildFather(tree));

System.out.println("二叉树中同时拥有两个孩子的父节点个数为:" + doubleChildFather(tree));

}

}

java如何实现 树 的模型

可以参考 javax.swing.tree 的思想 给你一点点的提示...

import java.util.*;

/** 树对象 */

public interface Tree implements IterableTreeNode{

/** 得到树根 */

TreeNode getRoot();

/** 返回迭代器(比如先根遍历整颗树) */

IteratorTreeNode iterator();

}

//====

/** 树节点对象 */

public interface TreeNode {

/** 返回父节点 */

TreeNode getParent();

/** 返回孩子节点的迭代器 */

IteratorTreeNode children();

boolean isRoot();

boolean isLeaf();

//...methods

}

Java实验树的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于Java实验一、Java实验树的信息别忘了在本站进行查找喔。