面试题22:从上往下打印二叉树

来源:互联网 发布:淘宝刷钻石 编辑:程序博客网 时间:2024/05/21 18:49

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

        8

    6    10

5   7  9   11

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

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

二叉树结点的定义:

struct BinaryTreeNode

{

int  data;

BinaryTreeNode*   lchild;

BinaryTreeNode*   rchild;

}

伪代码:

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);}}


原创粉丝点击