/**
* 非递归形式的后序遍历
*/
const { tree } = require("./utils/BinarySearchTree");
let stack = [];
let preNode;
function postOrderDisplayByStack(root, str = "") {
while (root || stack.length) {
//找到最左节点
while (root) {
stack.push(root);
root = root.leftNode;
}
if (stack.length) {
//获取栈中的最左节点。
root = stack.pop();
if (!root.rightNode || preNode == root.rightNode) {
str += `${root.value}, `;
preNode = root;
root = null;
} else {
//重新放回栈中。
stack.push(root);
root = root.rightNode;
}
}
}
return str;
}
let content = postOrderDisplayByStack(tree);
console.log(content.replace(/, $/, ""));
数据结构 js 非递归形式的后序遍历
最新推荐文章于 2022-10-19 21:04:02 发布