黑马程序员技术交流社区
标题:
此程序属于组合还是聚合呢,或者都不是?
[打印本页]
作者:
Rancho_Gump
时间:
2013-1-31 20:19
标题:
此程序属于组合还是聚合呢,或者都不是?
本帖最后由 张向辉 于 2013-2-2 12:34 编辑
下面这个程序属于组合还是聚合呢 ?或者都不是?
public class Node {
public int value;
public Node left;
public Node right;
public void store(int value)
{
if(value<this.value)
{
if(left == null)
{
left = new Node();
left.value=value;
}
else
{
left.store(value);
}
}
else if(value>this.value)
{
if(right == null)
{
right = new Node();
right.value=value;
}
else
{
right.store(value);
}
}
}
public boolean find(int value)
{
System.out.println("happen " + this.value);
if(value == this.value)
{
return true;
}
else if(value>this.value)
{
if(right == null) return false;
return right.find(value);
}else
{
if(left == null) return false;
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 void main(String [] args)
{
int [] data = new int[20];
for(int i=0;i<data.length;i++)
{
data
= (int)(Math.random()*100) + 1;
System.out.print(data
+ ",");
}
System.out.println();
Node root = new Node();
root.value = data[0];
for(int i=1;i<data.length;i++)
{
root.store(data
);
}
root.find(data[19]);
root.preList();
System.out.println();
root.middleList();
System.out.println();
root.afterList();
}
}
作者:
铿锵科技
时间:
2013-2-1 00:43
写的是什么,高深莫测?
作者:
黄鸿达
时间:
2013-2-1 11:13
这个程序其实就是个二叉树,首先运行这个程序,我用我自己测试的结果来打印
17,43,33,7,2,6,72,68,53,6,3,3,28,89,10,38,25,67,4,63,
happen 17
happen 43
happen 72
happen 68
happen 53
happen 67
happen 63
17,7,2,6,3,4,10,43,33,28,25,38,72,68,53,67,63,89,
复制代码
然后这个程序以数组[0]=17作为树的根点,之后就是接下来读到的数都像二叉树那样存贮,比如接来下的43就存在根点的右下角,就像一个二叉树那样。以17,43,33,7,2,6,72,68画出个二叉树。
至于你说这个是组合还是聚合 还是别的,我BAIDU了,也没答案,但是按照我理解,应该是组合吧,应该左右节点都依附在上级节点而存在,而且组合,根点结束了,下面的叶节点的生命周期也结束了。也好像符合。假设这幅图是个内存图,17就是root这个对象,而root对象成员属性有left 和right 他们又指向他们各自的左右节点如果root没了,root的左右指向也没了,下面也跟着没有。如果组合还不是,估计我就只能说是一个二叉树结构的关系了
heima11.JPG
(15.01 KB, 下载次数: 7)
下载附件
2013-2-1 10:47 上传
还有10几个数 我就不画了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2