Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 树的有序遍历_Java_Interface_Tree Traversal_Inorder - Fatal编程技术网

Java 树的有序遍历

Java 树的有序遍历,java,interface,tree-traversal,inorder,Java,Interface,Tree Traversal,Inorder,如何为以下树结构展平树(按顺序遍历): 我的预期答案也随附要点。一个要么包含类型a的字段,要么包含类型B的字段,但决不能同时包含两者。您可以将函数传递给其ifLeft()方法,该方法仅在包含a时调用。您可以将函数传递给其ifRight()方法,该方法在包含B时调用。因此,如果您同时调用这两个方法,则只会调用其中一个函数 函数只是一个可以实现的接口,它可以将某些内容转换为其他内容 树可以是单个元素,也可以是三棵树中的三棵树(本身可以是元素,也可以是三棵树中的三棵树,等等),形成递归数据结构 三元组

如何为以下树结构展平树(按顺序遍历):


我的预期答案也随附要点。

一个
要么包含类型a的字段,要么包含类型B的字段,但决不能同时包含两者。您可以将函数传递给其
ifLeft()
方法,该方法仅在包含a时调用。您可以将函数传递给其
ifRight()
方法,该方法在包含B时调用。因此,如果您同时调用这两个方法,则只会调用其中一个函数

函数只是一个可以实现的接口,它可以将某些内容转换为其他内容

可以是单个元素,也可以是三棵树中的三棵树(本身可以是元素,也可以是三棵树中的三棵树,等等),形成递归数据结构

三元组有左、中、右元素


要遍历树,应该检查它是否包含单个元素或三元组。如果是单个元素,则遍历完成。如果它是一个三元组,那么您应该遍历它的左树、中树和右树。

问题是什么?有两个问题:1)上面的代码是如何工作的?2) 压平树的代码是什么?这里不是这样的。尝试一些东西,如果你有问题,告诉我们你尝试了什么,并解释你面临的问题。我们不会做你的家庭作业。我试着理解它,但做不到。我可以知道Function.java、flattree.java、Triple.java正在做什么,从某种程度上说,Function.java、flattree.java和Triple.java都在做什么,但我不明白Tree.java是如何工作的。我无法理解如何以左-中-右的方式遍历树。谢谢您的快速回答!我已经编写了遍历并在问题中对其进行了编辑,请您验证一下,根据我对您答案的理解,我的代码是否正确。这是一个正在进行的带回家的考试吗?您的代码没有编译,它不遵守Java命名约定,并且它忘记了中间元素,但在我看来,它在逻辑上是正确的。您并不真正接受ifLeft()和ifRight()的功能设计。我会创建两个函数:一个应用于叶树,另一个应用于节点树。JB Nizet:我已经用2个函数和更好的命名约定重写了代码,我认为这段代码应该编译。现在正确吗?梅尔:我参加了这次考试,现在我想学习答案,你能告诉我一个更好的方法吗?如果我自己不理解它,在非常努力地尝试了两天之后,我如何学习它。要检查它是否正确,你应该自己测试它。创建一个树,调用此树上的方法,并检查它是否返回预期的列表。它仍然不尊重公约。课程以大写字母开头。方法以小写字母开头。我的意思是应该有两种不同的函数实现。穿过树叶树的人。另一个是遍历节点树的。在遍历方法中不需要if块,因为ifLeft()和ifRight()为您进行测试。哦,你还是跳过了中间的元素。