层次遍历

原创 2015年11月20日 19:24:23

数据结构实验之二叉树五:层序遍历

Time Limit: 1000MS Memory limit: 65536K

题目描述

已知一个按先序输入的字符序列,如abd,,eg,,,cf,,,(其中,表示空结点)。请建立二叉树并求二叉树的层次遍历序列。

输入

 输入数据有多行,第一行是一个整数t (t<1000),代表有t行测试数据。每行是一个长度小于50个字符的字符串。

输出

 输出二叉树的层次遍历序列。

示例输入

2
abd,,eg,,,cf,,,
xnl,,i,,u,,

示例输出

abcdefg

xnuli

队列法:

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

版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

二叉树的锯齿形层次遍历

给出一棵二叉树,返回其节点值的锯齿形层次遍历(先从左往右,下一层再从右往左,层与层之间交替进行)  样例 给出一棵二叉树 {3,9,20,#,#,15,7},     3    / \   ...

2017校招 美团笔试题 编程题 层次遍历多叉树

题目:美团笔试题 编程题  层次遍历多叉树 给定一棵多叉树,每个节点保存一个int类型数字且节点数字不重复, 要求从上到下按层次打印每个节点的数字,每个层次按从左到右的顺序。  要求:  (1...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

leetcode解题之102&107. Binary Tree Level Order Traversal java版(二叉树层次遍历)

102. Binary Tree Level Order Traversal ,107. Binary Tree Level Order Traversal II ,广度优先遍历, leetcode解...

UVa 11234 Expressions (二叉树重建&由叶往根的层次遍历)

思路: 1. 怎么建树?——对于给出的序列, 从左到右遍历,遇到代表数字的小写则建立一个无儿子的树(只保存值),然后把结点指针入栈;遇到代表操作符的大写字母,则从栈中弹出两个结点,然后建立一个以大写字...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)