Advertisement

二叉树遍历DFS和BFS

阅读量:

二叉树的深度优先遍历(DFS)与广度优先遍历(BFS)

深度优先遍历: 以根节点为起点,沿着左子树方向持续向下探索,直至抵达最末端的叶子节点。随后返回至上一节点,对右子树进行访问,直至所有可到达的节点均被处理完毕。

广度优先遍历: 以根节点为起点,在逐层访问二叉树各层级节点的基础上,完成对整个结构的横向扫描。

DFS实现:

数据结构:栈

将父节点压入栈中,随后将其弹出,并按照先将右子节点压入栈、再将左子节点压入栈的顺序依次处理。通过递归方式访问所有节点即可完成遍历。

BFS实现:

数据结构:队列

将父节点加入队列,之后将其从队列中取出,并按照先将左子节点加入队列、再将右子节点加入队列的顺序依次处理。通过递归方式访问所有节点即可完成遍历。

复制代码
 #include <iostream>

    
 #include <stdlib.h>
    
 #include <malloc.h>
    
 #include <Stack>
    
 #include <Queue>
    
 using namespace std;
    
  
    
 typedef struct Node {
    
     char data;
    
     struct Node *lchild;

全部评论 (0)

还没有任何评论哟~