java树叶⼦计算_java–从特定叶⼦开始的⾃下⽽上树遍历我正在寻⼀种从下到上遍历树的⽅法,以便我可以从我选择的特定叶⼦开始,然后继续到根.
预期输出:在链接sample tree中的样本树图像(取⾃here)中,如果我指定从Y开始,算法将返回YXZWVUT.
对此我有任何帮助,我将不胜感激.
最佳答案 如果我正确地理解了这个问题,那就是问题陈述
遍历n-ary树,从叶节点开始直到根节点,这样在遍历所有⼦节点之前不会遍历任何节点.遍历的第⼀个节点将始终是叶节点,遍历的最后⼀个节点将始终是根节点.
这可以通过使⽤两个递归函数来解决,TraverseUp()是调⽤⾃⾝的主函数和另⼀个调⽤⾃⾝的递归函数PostOrderTraversal().数组A需要通过引⽤传递,并包含最终遍历的列表.这是⼀些伪代码:
TraverseUp(Array *A, Node *n) {
// Add n to A to maintain bottom up nature
if (!n) return;
A.add(n)
// Go to parent
Node *p = n.parent();
if (!p) return;
// For each child of p other than n, do a post order traversal
foreach(Node *c in p.children) {
if (c == n) continue;
PostOrderTraversal(A, c);
}
// When done with adding all p's children, continue traversing up
TraverseUp(A, p);
}
// Standard implementation of post order traversal
PostOrderTraversal(Array *A, Node *n) {
if (!n) return;
foreach(Node *c in n.children) {
PostOrderTraversal(A, c);
A.add(c);
自学java从哪里开始}
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。