您的位置:首页 > 其它

从上往下打印出二叉树的每个结点

2017-10-19 13:40 274 查看
http://blog.csdn.net/lskyne/article/category/1444357

题目:从上往下打印出二叉树的每个结点,同一层的结点按照从左到右的顺序打印,例如

        8

    6    10

5   7  9   11

依次打印:8,6,10,5,7,9,11

理解:层次遍历二叉树,借助队列,先将根入队列,根出列,打印根的值,并把根的左孩子和右孩子入队列,再出列,打印,入列(根的左孩子的  左孩子和右孩子),.......

二叉树结点的定义:

struct BinaryTreeNode

{

int  data;

BinaryTreeNode*   lchild;

BinaryTreeNode*   rchild;

}

伪代码:

[cpp] view
plain copy

void PrintTree(BinaryTreeNode* pRoot)  

{  

    if(pRoot == NULL)  

        return;  

    SeQueue s;  

    InitQueue(s);  

    EnQueue(pRoot);  

    while(!QueueEmpty(s))  

    {  

        BinaryTreeNode *p;  

        p=DeQueue(s);  

        printf("%d ",p->data);  

        if(p->lchild)  

            EnQueue(p->lchild);  

        if(p->rchild)  

            EnQueue(p->rchild);  

    }  

}  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐