您的位置:首页 > 理论基础 > 数据结构算法

数据结构和算法--二叉树的层次遍历

2016-11-09 21:18 537 查看
#include "bitree.h"
#include "linkqueue.h"

//层次遍历
int bitree_level_order(bitree_t *root)
{
//创建队列
linkqueue_t *lq = linkqueue_create();

//根结点入队
linkqueue_input(lq, root);

//当队列不为空时,进行出队判断是否存在左右子树,存在则入队
while(!linkqueue_empty(lq))
{
//出队
root = linkqueue_output_undel(lq);

//遍历(打印)
printf("%d ", root->data);

//判断是否存在左右子树,若存在,则入队
if(root->lchild != NULL)
{
linkqueue_input(lq, root->lchild);
}

if(root->rchild != NULL)
{
linkqueue_input(lq, root->rchild);
}
}

return 0;
}

int main(int argc, const char *argv[])
{
bitree_t *root = bitree_create(8, 1);

bitree_level_order(root);
putchar(10);

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据结构 c语言