礼品代发网

礼品代发网

收录130107113题,礼品代发网免费搜题解答

今日已更新0道题

树为什么没有后序遍历-为什么后序线索树的遍历仍需要栈的支持

2025-11-20 06:14:38  

树为什么没有后序遍历-为什么后序线索树的遍历仍需要栈的支持

优质解答

后序遍历就是先左后右再根节点,普通树用递归就能搞,但线索树节点少左孩子多右孩子,遍历时得跳着走。比如遇到右孩子是前驱节点,得直接跳到后继继续,这时候得用栈记住还没处理完的节点,不然容易漏节点或者重复访问。

线索树把叶子节点的左右指针改成指向前驱和后继,这样遍历时虽然能少用几次循环,但遇到需要回溯的情况,比如从右子树返回根节点后,还得找左子树继续遍历。这时候栈就像个记事本,把要回溯的节点按顺序记下来。比如遍历到右子树最底下的节点,发现它右孩子是前驱节点,说明该回溯了,这时候栈顶的节点就是当前要处理的父节点。假设有一个线索树有10个节点,遍历时最多需要压栈10次,弹出栈里的节点才能正确访问所有节点。还要注意,栈的存在是为了保证遍历顺序,即使线索树能减少循环次数,但节点状态保存还是得靠栈。

本题链接:

线索树后序遍历