参考文献与详细资料:https://blog.csdn.net/weixin_64067830/article/details/124443430
视频:https://www.bilibili.com/video/BV1iU4y1B7D7/?buvid=XYB84CAB837F5A4C58FFDA90AF6411161612F&is_story_h5=false&mid=2h%2FFzDnnVGQE0OHQ0k5KbQ%3D%3D&p=1&plat_id=116&share_from=ugc&share_medium=android&share_plat=android&share_session_id=d48ab750-e53c-405d-aefd-65fc89ed5bc3&share_source=WEIXIN&share_tag=s_i×tamp=1682597032&unique_k=NnNJXie&up_id=401399175
先序(根左右)只要后面还有孩子,那自己便是后面孩子的根节点。
如"根左右"意思就是优先访问顺序,也就是遍历顺序。最先访问根节点,如果访问完成就访问左孩子,左孩子完了到右孩子。
注意:在DFS下往往都是根访问完后接左,但是左孩子自己也是后面节点的根节点时又要遵循[根左右]原则,也就是上次的右孩子先不访问了,先访问当前的根节点,后又是左,如此直到访问完毕.
就是从开始的节点从左往右一直往下搜索即可,优先最左边的所有元素输出完,然后再输出没有输出的右边的元素
中序(左根右)
同理优先访问左孩子,每次往左孩子找,但找的时候是不访问先的。因为最优先是判为根节点而不是左孩子。只要后面仍然存在孩子,自己就是作为根节点,那我们不访问一直向后寻找左孩子.
一直找到最后没有左孩子的时候,那么算是左孩子的遍历结束。
遵循[左根右]原则,后转到访问根节点。访问了当前根节点后,再转到它的右孩子。全部访问完毕就回溯,如此循环
后序(左右根)
同中序过程类似,先一直找左孩子直到没有,然后访问当前根节点的右孩子,再访问根节点。
然后回溯到上一步如此循环判断直到结束
补充
对于树的结构,必须有两个顺序才能确定
同时也只有树的结构确定才能推出没有给出的树的顺序
一般倒推树的遍历顺序更好推出树的结构
树的每个节点都可以分为根节点,左孩子,右孩子。
后序(左右根),前序(根左右)确定根,
中序(左根右)确定是左孩子还是右孩子
先确定根节点,然后排序根据排序规则
如中序(左根右)BADE,ADE都同在一边
现在知道D为根节点,那么E就一定是D的右孩子
而BA就不确定,因此就是一定是左右只有一个节点的时候才能确定
否则就要继续寻找子节点.
注意级序遍历是层序遍历而非前序遍历!层序遍历就是BFS的遍历方式
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)