*第十一周*数据结构实践项目一【二叉树的层次遍历算法】
问题描述 :
【二叉树的层次遍历算法】
实现二叉树的层次遍历算法,并对用”A(B(D,E(H(J,K(L,M(,N))))),C(F,G(,I)))”创建的二叉树进行测试。
本项目部分使用了之前建立的二叉树算法库算法库,此处不再赘述,只着重看一下主函数部分。
主函数:
/*Copyright (c) 2015,烟台大学计算机与控制工程学院All righs reserved文件名称:test.cpp作者: 李哲完成日期:2015年11月9日问题描述:二叉树的层次遍历算法程序说明:主函数*/
#include <stdio.h>
#include "test.h"void LevelOrder(BTNode *b)
{BTNode *p;BTNode *qu[MaxSize]; //定义环形队列,存放节点指针int front,rear; //定义队头和队尾指针front=rear=-1; //置队列为空队列rear++;qu[rear]=b; //根节点指针进入队列while (front!=rear) //队列不为空{front=(front+1)%MaxSize;p=qu[front]; //队头出队列printf("%c ",p->data); //访问节点if (p->lchild!=NULL) //有左孩子时将其进队{rear=(rear+1)%MaxSize;qu[rear]=p->lchild;}if (p->rchild!=NULL) //有右孩子时将其进队{rear=(rear+1)%MaxSize;qu[rear]=p->rchild;}}
}int main()
{BTNode *b;CreateBTNode(b,"A(B(D,E(H(J,K(L,M(,N))))),C(F,G(,I)))");printf("二叉树b: ");DispBTNode(b);printf("\n");printf("层次遍历序列:\n");LevelOrder(b);DestroyBTNode(b);return 0;
}
运行结果:
*第十一周*数据结构实践项目一【二叉树的层次遍历算法】相关推荐
- 二叉树:层次遍历算法(自下而上,从右到左)
和上一个算法:二叉树:层次遍历算法(自上而下,从左到右)类似,是在上一个的基础上完成的,上一个是自上而下,从左到右,是默认的层次遍历算法. 而与之相反的,本题是自下而上,从右到左的层次遍历,需要借助队 ...
- 数据结构实践项目——图的基本运算及遍历操作
本文是针对[数据结构基础系列(7):图]中第1-9课时的实践项目. 0701 图结构导学 0702 图的定义 0703 图的基本术语 0704 图的邻接矩阵存储结构及算法 0705 图的邻接表存储结构 ...
- 二叉树:层次遍历算法(自上而下,从左到右)
层次遍历(LevelOrder)就是默认为自上而下,从左到右,一层一层进行遍历, 层次遍历需要借助队列来完成, 队列:先进先出(FIFO). 分析:如图有一棵二叉树,按照层次遍历最终的结果就是ABCD ...
- 二叉树的层次遍历算法实现
二叉树层次遍历就是按照深度从上往下从左往右依次遍历,与常见的三种先.中.后序遍使用的递归不同,需要使用到队列来实现. 分析:如果根节点不为空,在读根节点的数据读出,同时把左右节点的地址存好,然后再从左 ...
- 第十周第十一周上机实践项目-项目5-摩托车继承自行车和机动车
/*copyright(c)2016.烟台大学计算机学院* All rights reserved,* 文件名称:text.Cpp* 作者:刘涛* 完成日期:2016年5月9日* 版本号:vc++6. ...
- 第十六周上机实践—项目2—大数据集上排序算法性能的体验
/* *Copyright(c) 2015,烟台大学计算机学院 *All rights reserved. *文件名称:test.cpp *作者:林莉 *完成日期:2015年12月18日 *版本:v1 ...
- 数据结构——二叉树的递归遍历算法与非递归遍历算法+层次遍历算法
(文章篇幅有点长,二叉树的递归遍历算法不作详细分析,但是二叉树的非递归遍历算法和层次遍历算法都有非常详细的分析过程,记得往下翻哦!) 二叉树的递归遍历算法实现 我们首先用递归的方法先序遍历创建这样一棵 ...
- [数据结构实践项目]变态的停车场管理系统
[数据结构实践项目]变态的停车场管理系统 项目简介 设停车场是一个可以停放 n 辆汽车的南北方向的狭长通道,且只有一个大门可供汽车进出.汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在 ...
- sdut 2137 数据结构实验之求二叉树后序遍历和层次遍历
数据结构实验之求二叉树后序遍历和层次遍历 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem Descr ...
- 数据结构实验之求二叉树后序遍历和层次遍历
数据结构实验之求二叉树后序遍历和层次遍历 Description 已知一棵二叉树的前序遍历和中序遍历,求二叉树的后序遍历和层序遍历. Input 输入数据有多组,第一行是一个整数t (t<100 ...
最新文章
- TiDB 在小红书从 0 到 200+ 节点的探索和应用
- linux无缝升级的版本,最近一周发布新版本的Linux发行版 - 2020-01-03
- android6.0权限管理工具EasyPermissionUtil
- 记一次DRBD Unknown故障处理过程
- 如何从javascript检索GET参数? [重复]
- python筛选质数并一行输出五个_python使用filter方法递归筛选法求N以内的质数素数附一行打印心形标记的代码解析...
- php 转义md5 和java 转译的区别_CTF|PHP中的命令参数注入
- 华为IS-IS基础配置
- python not enough arguments_python - not enough arguments for format string
- 黑苹果简单驱动 MultiBeast用法基础篇
- 地质灾害防治网格化管理平台
- 无人机倾斜影像建模哪个软件好
- 一文掌握Flutter for Windows桌面端稳定版新特性
- Windows安装Dlib库失败解决
- 2021年中山大学计算机专业学硕复试线,2021中山大学研究生分数线一览表(含2019-2020历年复试)...
- 2019c/c++校招100题
- 一个正经的前端学习 开源 仓库(阶段十三)
- 天梯赛练习集 L2-021 点赞狂魔(25分)含测试点解析
- 简历上如果出现过于高大上的项目,反而过犹不及:再论如何通过项目引出技术
- 手机端html回弹,处理iOS微信H5页面橡皮回弹效果
热门文章
- 「leetcode」17.电话号码的字母组合【回溯算法】详解!
- Acrobat Pro DC 教程,如何将演示文稿转换为 PDF 文件?
- 苹果Mac最好用的记事本工具:Ulysses
- 如何使用 iMovie 为影片添加字幕、综艺字?
- 苹果Mac定制化App开发神器:​​​​FileMaker
- iCalamus for Mac(版面设计工具)
- Charles for Mac(抓包工具)
- 如何将安卓数据同步到Mac电脑上
- 第八章 虚拟机字节码执行引擎
- javascript在使用时要注意的东西