面试题22:从上往下打印二叉树
2013-07-02 21:37
197 查看
题目:从上往下打印出二叉树的每个结点,同一层的结点按照从左到右的顺序打印,例如
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);
}
}
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);
}
}
相关文章推荐
- 【剑指offer】22从上往下打印二叉树
- 《剑指Offer》面试题:从上往下打印出二叉树的每个节点
- 面试题23:从上往下打印二叉树
- 剑指offer(22)—从上往下打印二叉树
- 面试题23:从上往下打印二叉树
- (C++)剑指offer-22:从上往下打印二叉树(举例让抽象具体化)
- 面试题:23从上往下打印二叉树
- 面试题27:从上往下打印二叉树
- 剑指offer 22 从上往下打印二叉树
- 《剑指Offer》面试题:从上往下打印出二叉树的每个节点
- 剑指offer——面试题23:从上往下打印二叉树
- 剑指Offer:面试题23——从上往下打印二叉树(java实现)
- 【剑指Offer面试题】 九度OJ1523:从上往下打印二叉树
- 【剑指offer】面试题25:从上往下打印二叉树
- 面试题02 - 从上往下打印二叉树 【树】[ water ]
- 剑指offer面试题23-从上往下打印二叉树
- 面试题23从上往下打印二叉树
- 【面试题023】从上往下打印二叉树
- 从上往下打印二叉树(面试题 23)
- 牛客网-剑指offer-22-从上往下打印二叉树