二叉树遍历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)
还没有任何评论哟~
