层次遍历

原创 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; }

如何实现二叉树层次遍历

完整 #include using namespace std; typedef struct biTreeNode { char data; struct biTreeNode *LChild...
  • u014309268
  • u014309268
  • 2014年09月26日 22:47
  • 3758

LintCode:二叉树的层次遍历 II

LintCode:二叉树的层次遍历 II""" Definition of TreeNode: class TreeNode: def __init__(self, val): ...
  • u012225151
  • u012225151
  • 2016年05月13日 13:19
  • 705

二叉树(前中后序递归非递归遍历,层次遍历,C++实现)

/*////////////////////////////////////////////////////////////////////////////// // 名 称 (Unit N...
  • wangzirui0001
  • wangzirui0001
  • 2011年10月09日 00:35
  • 3223

根据层次遍历的顺序建立树,树的层次遍历

//根据层次遍历的顺序建立树 #include #include //树的存储类型 typedef struct tree { char data; tree *lchild,*rchild; tre...
  • cg05568256068
  • cg05568256068
  • 2007年08月11日 22:29
  • 776

按层次生成、遍历二叉树

对于二叉树一般是按深度生成和遍历,比如使用递归方法进行先序遍历、中序遍历、后序遍历。这次我们按层次生成和遍历二叉树。这种遍历方式关键在于需要使用一个队列保存“已处理该节点,但还没处理它的子节点”这样的...
  • u013632190
  • u013632190
  • 2016年08月08日 08:50
  • 1343

数据结构-层次遍历二叉树

二叉树链表存储方式: struct BiNode {    Type  data;    struct BiNode *lchild,*rchild;//左右孩子指针 }Bi...
  • huangxiaominglipeng
  • huangxiaominglipeng
  • 2014年07月08日 15:14
  • 990

二叉树按层次遍历的递归用法

对于在学数据结构的大家,在编写二叉树的按层次遍历时往往会用非递归的方法,或许有人会问可不可以用递归来做呢? 对此,小编的答案是可以的。 相对于非递归,递归稍微要复杂些(这是由于二叉树中递归左子树递归右...
  • YaoDeBiAn
  • YaoDeBiAn
  • 2016年06月07日 22:15
  • 2561

二叉树利用队列实现层次遍历

这里先提一句为什么之前树的创建可以由前序遍历的方法搞定,原因是前序遍历的时候把所有的空节点都包含在内了,如果仅仅只有非空节点的前序遍历输入,是无法得到单一二叉树的,例如给出了一个前序遍历顺序AB 那么...
  • lafengxiaoyu
  • lafengxiaoyu
  • 2016年11月20日 13:26
  • 5333

二叉树---层次遍历

就是按层次来 首先是根节点A入队列 然后是根节点的左B右C子树 根节点A出队列 左子B的左D右子树入队列然后B出队列 C的左右子树入对列C出队列 然后是D以此循环知道队列的头部和尾部重合队列空 输出完...
  • Ink_cherry
  • Ink_cherry
  • 2016年11月07日 16:27
  • 2527

java根据层次遍历建立二叉树

节点类: package Tree; public class BTNode { private E data; private BTNode left, right; public B...
  • feng11116
  • feng11116
  • 2016年01月08日 11:43
  • 910
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:层次遍历
举报原因:
原因补充:

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