#include<iostream>
#include<cstdlib>
#include<queue>
using namespace std;
struct Node
{
int val;
Node *lc;
Node *rc;
};
void create(Node *&head)
{
head = (Node*)malloc(sizeof(Node)); head->val = 1;
head->lc = (Node*)malloc(sizeof(Node)); head->lc->val=2;
head->rc = (Node*)malloc(sizeof(Node)); head->rc->val=3;
head->lc->lc =(Node*)malloc(sizeof(Node)); head->lc->lc->val =4;
head->lc->rc =(Node*)malloc(sizeof(Node)); head->lc->rc->val =5;
head->rc->lc =(Node*)malloc(sizeof(Node)); head->rc->lc->val =6;
head->rc->rc =(Node*)malloc(sizeof(Node)); head->rc->rc->val =7;
head->lc->lc->lc= NULL;
head->lc->lc->rc= NULL;
head->lc->rc->lc= NULL;
head->lc->rc->rc= NULL;
head->rc->lc->lc= NULL;
head->rc->lc->rc= NULL;
head->rc->rc->lc= NULL;
head->rc->rc->rc= NULL;
}
void myprint(Node *head)
{
queue<Node*>q;
int last,nlast;
if(head!=NULL)
{
last=head->val;
q.push(head);
nlast = head->val;
}
while(!q.empty())
{
Node *tmp;
tmp = q.front();
cout<<tmp->val<<" ";
q.pop();
if(tmp->lc!=NULL)
{
q.push(tmp->lc);
nlast=tmp->lc->val;
}
if(tmp->rc!=NULL)
{
q.push(tmp->rc);
nlast=tmp->rc->val;
}
if(last == tmp->val)
{
cout<<endl;
last = nlast;
}
}
}
int main()
{
Node *head;
create(head);
myprint(head);
return 0;
}
二叉树层次遍历-按层换行
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 个人觉得这个算法的思维很妙,需要考虑到几个地方,下面在给出代码之前,先对思想进行一个详细分析: 题目Given a...
- 这个算法和另外一篇文章的区别在于这个算法要求的是从下往上进行遍历,两种算法的唯一不同点在于数组的存入顺序改动点:递...
- 注:本文摘自唐巧博客,方便以后查阅。请谅解 序 大家都开始上班了吧?我春节在家准备了 5 篇面试题系列的文章,想着...