层次遍历

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

二叉树类实现,包含层次遍历

  • 2015年05月17日 13:12
  • 210KB
  • 下载

c语言中数据结构的层次遍历

  • 2013年10月17日 11:44
  • 685B
  • 下载

从根开始按层次(第0层->第1层->第2层)遍历一颗二叉树,需要使用什么辅助数据结构?

二叉树遍历

树或二元树的层次遍历

  • 2009年06月14日 09:35
  • 91KB
  • 下载

tree(层次构建与非递归遍历).rar

  • 2009年05月13日 21:38
  • 356KB
  • 下载

数据结构(六)——二叉树 前序、中序、后序、层次遍历及非递归实现 查找、统计个数、比较、求深度的递归实现

一、基本概念 每个结点最多有两棵子树,左子树和右子树,次序不可以颠倒。 性质: 1、非空二叉树的第n层上至多有2^(n-1)个元素。 2、深度为h的二叉树至多有2^h-1个结点。 满二叉树:所有...
  • fansongy
  • fansongy
  • 2011年09月22日 21:10
  • 262059

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

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

第十周项目 1 — 验证算法 (1)层次遍历算法的验证

/* * Copyright (c) 2017,烟台大学计算机学院 * All right reserved. * 文件名称:main...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:层次遍历
举报原因:
原因补充:

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