public class Tree{
Node pera=new Node();
//Node pera1=new Node();
//建树
public Node creattree(Node b,int a){
if(pera.data==0){
pera.data=a;
}else if(a>=pera.data){
creattree(pera.right,a);
}else{
creattree(pera.left,a);
}
return pera;
}
//遍历
public void treeout(Node pera1){
if(pera==null)
return;
System.out.println(pera.data);
treeout(pera.left);
treeout(pera.right);
}
//查找
public boolean chazhao(Node pera,int a){
boolean k=false;
if(pera.data==a)
k=true;
chazhao(pera.left,a);
chazhao(pera.right,a);
return k;
}
//计算高度
public int leaves(){
int leaveno;
if(pera==null)
return -1;
int leaveleft=(pera.left==null?0:leaves());
int leaveright=(pera.right==null?0:leaves());
leaveno=(leaveleft<leaveright)?leaveleft:leaveright;
return leaveno;
}
}class Node{
int data;
Node left,right;
public Node(){
data=0;
left=right=null;
}
public Node(int data){
this.data=data;
left=right=null;
}}class text1{ public static void main(String[] arge){
Tree B=new Tree();
//Tree C=new Tree();
for(int i=1;i<5;i++){
// Node A=new Node(i);
B.creattree(B.pera,i);
}
B.treeout(B.pera);
boolean k=B.chazhao(B.pera,4);
int a=B.leaves();
System.out.println(a);
System.out.println(k);
}}建树那段不知道应该怎么写,高手指点一下。
Node pera=new Node();
//Node pera1=new Node();
//建树
public Node creattree(Node b,int a){
if(pera.data==0){
pera.data=a;
}else if(a>=pera.data){
creattree(pera.right,a);
}else{
creattree(pera.left,a);
}
return pera;
}
//遍历
public void treeout(Node pera1){
if(pera==null)
return;
System.out.println(pera.data);
treeout(pera.left);
treeout(pera.right);
}
//查找
public boolean chazhao(Node pera,int a){
boolean k=false;
if(pera.data==a)
k=true;
chazhao(pera.left,a);
chazhao(pera.right,a);
return k;
}
//计算高度
public int leaves(){
int leaveno;
if(pera==null)
return -1;
int leaveleft=(pera.left==null?0:leaves());
int leaveright=(pera.right==null?0:leaves());
leaveno=(leaveleft<leaveright)?leaveleft:leaveright;
return leaveno;
}
}class Node{
int data;
Node left,right;
public Node(){
data=0;
left=right=null;
}
public Node(int data){
this.data=data;
left=right=null;
}}class text1{ public static void main(String[] arge){
Tree B=new Tree();
//Tree C=new Tree();
for(int i=1;i<5;i++){
// Node A=new Node(i);
B.creattree(B.pera,i);
}
B.treeout(B.pera);
boolean k=B.chazhao(B.pera,4);
int a=B.leaves();
System.out.println(a);
System.out.println(k);
}}建树那段不知道应该怎么写,高手指点一下。
解决方案 »
- 对象使用求解惑。
- java编程boolean
- 在java中利用enum实现swtich String类型
- 如何给某一组件更换外观?(不是全换)
- 怎么用 JAVA 编成实现 获得本机的 内存信息 和 操作系统 信息 以及硬盘信息呢 ?
- 关于JAVA CLASS LOADING的问题
- 截取字符串的问题
- java有没有类似eval的函数?
- "BorrowerInformation.java": Error #: 300 : class Persistent not found in class bo.BorrowerInformation
- 用java如何做一个可扩展的图表?
- 符号运算中的正则表达式问题(Java中)
- JEditorPane超链接的疑难问题
5 {
6 private static class IntTreeNode
7 {
8 private int data;
9 private IntTreeNode leftLink;
10 private IntTreeNode rightLink;
11
12 public IntTreeNode(int newData, IntTreeNode newLeftLink,
13 IntTreeNode newRightLink)
14 {
15 data = newData;
16 leftLink = newLeftLink;
17 rightLink = newRightLink;
18 }
19 } //End of IntTreeNode inner class
20 private IntTreeNode root;
21 public IntTree( )
22 {
23 root = null;
24 }
25 public void add(int item)
26 {
27 root = insertInSubtree(item, root);
28 }
29 public boolean contains(int item)
30 {
31 return isInSubtree(item, root);
32 }
33 public void showElements( )
34 {
35 showElementsInSubtree(root);
36 }41 private static IntTreeNode insertInSubtree(int item,
42 IntTreeNode subTreeRoot)
43 {
44 if (subTreeRoot == null)
45 return new IntTreeNode(item, null, null);
46 else if (item < subTreeRoot.data)
47 {
48 subTreeRoot.leftLink = insertInSubtree(item, subTreeRoot.leftLink);
49 return subTreeRoot;
50 }
51 else //item >= subTreeRoot.data
52 {
53 subTreeRoot.rightLink = insertInSubtree(item, subTreeRoot.rightLink);
54 return subTreeRoot;
55 }
}
private static boolean isInSubtree(int item, IntTreeNode subTreeRoot)
{
59 if (subTreeRoot == null)
60 return false;
61 else if (subTreeRoot.data == item)
62 return true;
63 else if (item < subTreeRoot.data)
64 return isInSubtree(item, subTreeRoot.leftLink);
65 else //item >= link.data
66 return isInSubtree(item, subTreeRoot.rightLink);
67 }
68 private static void showElementsInSubtree(IntTreeNode subTreeRoot)
69 { //Uses inorder traversal.
70 if (subTreeRoot != null)
71 {
72 showElementsInSubtree(subTreeRoot.leftLink);
73 System.out.print(subTreeRoot.data + " ");
74 showElementsInSubtree(subTreeRoot.rightLink);
75 } //else do nothing. Empty tree has nothing to display.
76 }
77 }这个是二分查找树的 可以了吧