层次顺序遍历二叉树 (二叉树层序遍历)
【问题描述】
编写按层次顺序遍历二叉树的算法
实验要求:以二叉链表作为存储结构
【输入形式】
以扩展二叉树前序遍历序列作为输入,创建二叉树。
【输出形式】
输出层次遍历节点的编号,每层按从左到右顺序输出。
【样例输入】
AB#D##C##
【样例输出】
ABCD
//层次顺序遍历二叉树
#include<stdio.h>
#include<stdlib.h>
#include<string.h>#define MaxSize 128// 定义二叉树
typedef struct Node
{ char data; // 数据元素struct Node* lchild; // 指向左孩子节点struct Node* rchild; // 指向右孩子节点
}BiNode; // struct Node 的别名
typedef BiNode* BiTree;// 定义顺序队
typedef struct Queue
{ int front; // 队头指针(实际上不是指针,是一个标签) int rear; // 队尾指针(实际上不是指针,是一个标签)BiNode* data[MaxSize]; // 存放队中元素(保存指针的数组)
}SqQueue; // struct Queue 的别名//创建二叉树
BiTree CreateTree()
{ BiTree T;char x=getchar();if(x=='#') return T=NULL;if(x=='\n') return T;else{ T=(BiTree)malloc(sizeof(BiNode));T->data=x;T->lchild=CreateTree();T->rchild=CreateTree();return T;}
}//层序遍历
void LeverOrder(BiTree T)
{BiNode *q= NULL; //创建临时指针q,移动它,来访问输出节点SqQueue* Q; //定义队列 QQ=(SqQueue*)malloc(sizeof(SqQueue)); //给Q获取(创建)地址Q->front=Q->rear=-1;if(T==NULL) return; Q->data[++Q->rear]=T; while(Q->front!=Q->rear){q=Q->data[++Q->front];printf("%c",q->data); if (q->lchild != NULL) Q->data[++Q->rear]=q->lchild;if (q->rchild != NULL) Q->data[++Q->rear]=q->rchild;}
} int main()
{BiTree T;T=CreateTree();LeverOrder(T);return 0;
}//薛定谔的月球
层次顺序遍历二叉树 (二叉树层序遍历)相关推荐
- 遍历children_二叉树:层序遍历登场!
登场之后,我要打十个! 看完这篇文章虽然不能打十个,但是可以迅速打五个!而且够快! 102.二叉树的层序遍历 给你一个二叉树,请你返回其按 层序遍历 得到的节点值.(即逐层地,从左到右访问所有节点). ...
- 代码随想录算法训练营第15天,102.二叉树的层序遍历、226.翻转二叉树、101.对称二叉树
102.二叉树的层序遍历.226.反转二叉树.101.对称二叉树 102.二叉树的层序遍历 二叉树的层次遍历,我们可以定义一个队列, 当访问到某一个节点时,我们将它存在的左右节点放入队列中,便可达到按 ...
- tree traversal (树的遍历) - 层序遍历 (level order traversal) - 二叉树的层序遍历
tree traversal (树的遍历) - 层序遍历 (level order traversal) - 二叉树的层序遍历 1. tree traversal (树的遍历) 1.1 深度优先搜索 ...
- 代码随想录算法训练营Day15|Leetcode102二叉树的层序遍历、Leetcode226翻转二叉树、Leetcode101对称二叉树
Day15打卡! 时长:2h 今日感想:今天主要学习了二叉树层次遍历的思路方法和应用.题目看似简单,实则有很多细节,有时间可以做做其他相似的推荐题目~ Leetcode102 二叉树的层序遍历 题目链 ...
- 代码随想录【day 14 二叉树】| 层序遍历 226.翻转二叉树 101.对称二叉树
代码随想录[day 14 二叉树]| 层序遍历 226.翻转二叉树 101.对称二叉树 层序遍历 卡哥文解 视频讲解 题目链接:102.二叉树的层序遍历 解题思路 代码实现 题目链接:107.二叉树的 ...
- 一次字节面试,被二叉树的层序遍历捏爆了
前言 大家好,我是bigsai,在数据结构与算法中,二叉树无论是考研.笔试都是非常高频的考点内容,在二叉树中,二叉树的遍历又是非常重要的知识点,今天给大家讲讲二叉树的层序遍历. 这部分很多人可能会但是 ...
- LeetCode 102二叉树的层序遍历103二叉树锯齿形遍历104二叉树的最大深度
微信搜一搜:bigsai 大家都在关注的刷题.学习数据结构和算法宝藏项目 关注回复进群即可加入力扣打卡群,欢迎划水.近期打卡: LeetCode 97交错字符串(动态规划) LeetCode 98验证 ...
- 102. 二叉树的层序遍历 golang
102. 二叉树的层序遍历 给你一个二叉树,请你返回其按 层序遍历 得到的节点值. (即逐层地,从左到右访问所有节点). 示例: 二叉树:[3,9,20,null,null,15,7], 3/ \9 ...
- [Leedcode][JAVA][第102题][二叉树的层序遍历][递归][迭代][BFS]
[问题描述][第102题][二叉树的层序遍历][中等] 给你一个二叉树,请你返回其按 层序遍历 得到的节点值. (即逐层地,从左到右访问所有节点).示例: 二叉树:[3,9,20,null,null, ...
- 二叉树的层序遍历和前中后序遍历代码 迭代/递归
二叉树的层序遍历和前中后序遍历代码 迭代/递归 只记录代码.思路参考代码随想录:https://github.com/youngyangyang04/leetcode-master/blob/mast ...
最新文章
- 破局:自动驾驶人才断层困境
- Mac下python3配置opencv3 3和Mac下单独opencv的配置以及iOS下配置opencv
- .NET设计模式(2):单件模式(Singleton Pattern)
- Spring中的@ Component,@ Repository和@Service批注有什么区别?
- python list 换位置_【已解决】Python中把list换成set
- Spark平台上提交作业到集群生成的日志文件
- iis php打开空白页,windows+IIS+php 访问显示空白页 php版本信息访问正常
- 异常和中断处理流程: Exception- or Interrupt-Handler Procedures
- python rarfile不支持unicode_python – zipfile提取时的unicode错误
- Android图片缩放方法
- combox高度修改 winfrom_WinForm窗体中ComboBox控件自定义高度和选项文本居中完美解决方案...
- 网易云音乐的所有歌手列表
- spdy_buffer
- Java语言实现会议安排问题,利用贪心法思想解决问题
- Mediator模式(仲裁者设计模式)
- 楼盘字典为什么能成为贝壳的超级护城河?
- View/ViewGroup的生命周期
- 启动kafka报错 count not reserve enough space for 1048576KB object heap
- 上海之行,我是来要饭的
- SweetAlert 2.0+弹出确认框,点击确定后执行方法