二叉树的遍历分为BFS和DFS两种大类
下面完整实现BFS遍历二叉树
* 例如二叉树
* 1
* / \
* 2 3
* /\
* 4 5
BFS遍历结果:1-2-3-4-5
具体的代码实现:
方法一、采用递归遍历的方法实现
// Recursive C program for level order traversal of Binary Tree
#include <stdio.h>
#include <stdlib.h>
/* A binary tree node has data, pointer to left child
and a pointer to right child */
struct node
{
int data;
struct node* left, *right;
};
/* Function protoypes */
void printGivenLevel(struct node* root, int level);
int height(struct node* node);
struct node* newNode(int data);
/* Function to print level order traversal a tree
* 方法一:
* 方法二见05
* */
void printLevelOrder(struct node* root)
{
int h = height(root);
int i;
for (i=1; i<=h; i++)
printGivenLevel(root, i);
}
/* Print nodes at a given level */
void printGivenLevel(struct node* root, i