Fork me on GitHub

随笔分类 -  数据结构与算法 / 二叉树

二叉树相关总结
摘要:二叉树-层序遍历 之前所述二叉树的递归遍历或者迭代遍历都属于深度优先搜索,即先迭代或者递归到树的某一枝最深处再逐渐回退,再到另一支的最深处再逐渐回退,从而完成遍历。而层序遍历属于广度优先遍历,即一层一层去遍历。 需要借助队列辅助实现一层一层遍历的逻辑,因为其先进先出的逻辑。而栈先进后出的逻辑适合模拟 阅读全文
posted @ 2024-04-15 09:23 bupaanything 阅读(24) 评论(0) 推荐(0) 编辑
摘要:迭代法实现的前中后序遍历,除了前序和后序相互关联,中序则是另一种风格。我们需要针对三种遍历方式实现统一风格的代码。如何统一风格:解决访问节点(遍历节点)和处理节点(将元素放进结果集)不一致的情况。将访问的节点放入栈中,把要处理的节点放入栈中但是做标记(紧接着放入一个空指针)。 统一迭代-中序遍历 c 阅读全文
posted @ 2024-04-07 11:57 bupaanything 阅读(54) 评论(0) 推荐(0) 编辑
摘要:递归的实现是每次递归调用都把函数的局部变量、参数值和返回地址等压入调用栈中,然后递归返回的时候就从栈顶弹出上一次递归的各项参数。可利用栈实现二叉树的前中后序遍历。 前序遍历 前序遍历是中左右的顺序,整体过程就是逐次访问父节点,压入右孩子再压入左孩子,由于访问的节点和待处理的节点顺序一致,故每次访问栈 阅读全文
posted @ 2024-04-07 10:57 bupaanything 阅读(16) 评论(0) 推荐(0) 编辑
摘要:深度优先遍历 先往深走,遇到叶子结点再往回走,分为前序遍历,中序遍历和后序遍历。方法有递归法和迭代法。前中后序遍历,指的是中间节点的遍历顺序。 前序遍历:5 4 1 2 6 7 8 中左右 中序遍历:1 4 2 5 7 6 8 左中右 后序遍历:1 2 4 7 8 6 5 左右中 深度优先遍历可利用 阅读全文
posted @ 2024-04-06 16:58 bupaanything 阅读(15) 评论(0) 推荐(0) 编辑

1
点击右上角即可分享
微信分享提示