概述
数据结构实验之二叉树五:层序遍历
Time Limit: 1000MS Memory limit: 65536K
题目描述
已知一个按先序输入的字符序列,如abd,,eg,,,cf,,,(其中,表示空结点)。请建立二叉树并求二叉树的层次遍历序列。
输入
输出
示例输入
2 abd,,eg,,,cf,,, xnl,,i,,u,,
示例输出
abcdefgxnuli
队列法:
#include<stdio.h> #include<stdlib.h> #include<string.h> #include<queue> using namespace std; char p[100];int i; struct node { char data; struct node *l,*r; }; struct node *creat(struct node *q) { if(p[i++]==',') q=NULL; else{q=(struct node *)malloc(sizeof(struct node)); q->data=p[i-1]; q->l=creat(q->l); q->r=creat(q->r); } return q; } void levertravel(struct node *t) { queue<struct node *>q; if(t!=NULL) q.push(t); struct node *b; while(!q.empty()) { b=q.front(); printf("%c",b->data); q.pop(); if(b->l) q.push(b->l); if(b->r) q.push(b->r); } } int main() {int j; scanf("%d",&j); while(j--) {scanf("%s",p); int c;i=0; struct node *root; root=(struct node *)malloc(sizeof(struct node)); root=creat(root); levertravel(root);printf("n"); } return 0; }
最后
以上就是轻松猎豹为你收集整理的层次遍历的全部内容,希望文章能够帮你解决层次遍历所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复