首页 / JAVA / java – 树递归的帮助
java – 树递归的帮助
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 树递归的帮助,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1436字,纯文字阅读大概需要3分钟。
内容图文
![java – 树递归的帮助](/upload/InfoBanner/zyjiaocheng/697/a7b78ce521fc4ba8b46ea21dacb2484c.jpg)
我有一个Person类,我想创建一个树.这是Person类的contsructor.
public Person(String name, int age, char gender, Person c1, Person c2)
c1是左边的孩子,c2是右边的孩子.所以说我像这样创造三个人:
Person c = new Person("Carl", 50, 'M', null, f);
Person b = new Person("Barbara", 52, 'F', d, e);
Person a = new Person("Adam", 75, 'M', b, c);
所以在这里你说亚当是根节点,而亚当的左边孩子是b,这是芭芭拉和他的右边c,即卡尔,依此类推.
所以我想要做的是编写一个计数方法,计算包括此在内的子项数.所以a.count()将返回6(如果Person f没有任何子节点).
所以这是我的代码:
public int count() // total person count including this object
{
if(child1==null)
return 0; //I tried return 1 for this too didnt work
if (child2==null)
return 0; //also tried 1 for this
return 1+this.child1.count() +1+this.child2.count();
}
我在纸上运行了好几次,它应该得到正确的结果,但是当我实际运行它时,由于某种原因,它会被一些原因关闭.
解决方法:
如果其中一个子项为null,则代码返回0.这是不正确的,因为您没有考虑其他孩子或此.计数应始终为> = 1,因为树中始终至少有一个节点.
此外,如果您发现一个孩子为空,则无法立即返回.你也需要计算另一个孩子(如果存在的话).
以下是我将如何实现它:
public int count() // total person count including this object
{
int count = 1; // we count this node as 1
if (child1 != null) // if we have a left child, count its size
count += child1.count();
if (child2 != null) // if we have a right child, count its size
count += child2.count()
return count;
}
您需要考虑这两个孩子,即使其中一个孩子是空的.
内容总结
以上是互联网集市为您收集整理的java – 树递归的帮助全部内容,希望文章能够帮你解决java – 树递归的帮助所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。