Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.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 使用lambda表达式的递归_Java_Algorithm_Binary Tree - Fatal编程技术网

Java 使用lambda表达式的递归

Java 使用lambda表达式的递归,java,algorithm,binary-tree,Java,Algorithm,Binary Tree,我理解lambda表达式有点困难。我的代码片段应该使用树的位置,并对代码进行遍历。我想我可能看错了方向。也许是逻辑或缺乏lambda表达式的语法知识阻止了我做我想做的事情。 任何帮助都将不胜感激。下面是我的代码片段: @凌驾 公共旅游和消费者访问{ 访问=p->inOrderp; 访问acceptroot; } OrderPosition p中的私有void抛出InvalidPositionException{ 双核三烯酸t=双核三烯酸p; pt->{ 按顺序左; System.out.prin

我理解lambda表达式有点困难。我的代码片段应该使用树的位置,并对代码进行遍历。我想我可能看错了方向。也许是逻辑或缺乏lambda表达式的语法知识阻止了我做我想做的事情。 任何帮助都将不胜感激。下面是我的代码片段:

@凌驾 公共旅游和消费者访问{ 访问=p->inOrderp; 访问acceptroot; } OrderPosition p中的私有void抛出InvalidPositionException{ 双核三烯酸t=双核三烯酸p; pt->{ 按顺序左; System.out.printlnt.element; 顺序正确; }; }
首先将访问者应用于节点及其所有子节点,即:

OrderConsumer访问者中的私有void,二进制树节点{ 如果节点!=null{//某个停止条件 //TODO遍历左子节点 //TODO访问实际元素 //TODO遍历右子节点 } } 这叫做:

@凌驾 公共无效遍历NorderConsumer访问者{ 根的顺序观察器; } 这反过来又可以称为:

TraverseInNordere->System.out.printlne; //或同上 TraverseInNorderSystem.out::println; 第一种方法应该非常简单,例如:

OrderConsumer访问者中的私有void,二进制树节点{ 如果节点!=null{ 在观察者中,t.左; visitor.applyt.element; 在视景器中,t.右; } } 松散地基于问题中发布的代码,假定类型,而不是测试

注1:如果使用java.util.function.Consumer类,则应为visitor.acceptt.element


注2:正如所评论的,声明访问者这两种方法的正确方法是,因为消费者很难理解您的问题是什么。你在期待什么?实际发生了什么?这里的问题是什么?你习惯使用匿名类吗?我正在做的是创建一种遍历二叉树的方法。不是BST,只需访问节点,一直到每个分支的最后一个节点,然后开始打印节点元素。为了解决这个问题,我们给出了第一种方法,使用Consumer作为参数访问树中的节点。正如被问到的,这将是我第一次,也是第一次使用匿名类和lambda表达式。Oracle有一个关于lambda表达式及其使用的优秀初学者教程:我试图修改您的示例,但我不知道它是否可以编译,我想这可能会让你更加困惑。你可以使用“应该是消费者银行”作为反馈,现在我所要做的就是理解算法,并继续学习更多的lambda示例。一步一个脚印,做一个更好的程序员。