我是靠谱客的博主 轻松猎豹,最近开发中收集的这篇文章主要介绍层次遍历,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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

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

最后

以上就是轻松猎豹为你收集整理的层次遍历的全部内容,希望文章能够帮你解决层次遍历所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部