【数据结构课程设计系列】完全二叉树操作演示

news2024/11/24 21:03:35

完全二叉数操作演示

1.完全二叉树操作演示要求:
(1)创建完全二叉树(用顺序方式存储)
(2)求二叉树的深度和叶子结点数
(3)实现二叉树的前序、中序、后序和层次遍历。
(4)查找给定结点的双亲、左右孩子。
其他增加功能:
(1)有用户使用错误的提示功能
(2)具有退出功能

2二叉树总体结构设计
对完全二叉数操作演示,主要划分为以下七个模块:
完全二叉树显示:以括号套括号的形式显示完全二叉树。
完全二叉树的节点数和叶子数:根据书中公式计算叶子数,并显示完全二叉树的节点数和叶子数。
完全二叉树的树深:根据书中公式计算树深,并显示完全二叉树的树深。
完全二叉树的前,中,后序遍历:根据程序分别显示二叉树的前,中,后序遍历。
完全二叉树的层次遍历:根据程序分别显示完全二叉树的层次遍历。
查找给定结点的双亲、左右孩子:根据书中公式计算查找给定结点的双亲、左右孩子,并加以显示。
退出程序:谢谢你的使用!
根据需求分析的结果,总体结构如图所示
在这里插入图片描述
3.详细设计
3.1数据结构设计
(1)整个程序采用结构体与顺序表相结合的编程方法一共完成了7个功能。在你输入错误时有报错消息。这样使整个程序运行起来更加完整。程序中有若干个子函数被主函数调运执行。由于程序要求二叉树的存储方式为顺序存储,所以在本程序中采用了先进先出的顺序表存储方式。
(2)程序包括的类
Void out(tree&t,int r)是显示二叉树函数
Node()求节点数,
Leaf()求叶子节点数,
Depth() 求树深
Preorder() 先序遍历函数,
Inorder() 中序遍历函数,
Postorder() 后序遍历函数,
leorder() 层次遍历函数;
caidan() 菜单操作页面函数;
sqhz() 查找给定节点的双亲,孩子函数
3.2主要模块设计
主函数 main()
直接以字符数组的方式给二叉树赋值,调用caidan()函数,然后以switch分支语句分别对菜单中的各个函数操作,最后以do-while循环语句结束程序。
树深的函数 Depth()
直接根据节点数算出结果返回值。
查找给定节点的双亲,孩子函数 sqhz()
此函数是程序中比较复杂的函数,函数中是通过节点标志的奇偶性分类求解的,首先用要查找的节点与二叉树中的节点依次比较,如果找到节点则用除2求余的方法判断奇偶,然后根据各自的特点求出节点的双亲和孩子,若找不到此节点则break;结束此操作,重新选择操作。
3.2.1菜单的选择模块
在这里插入图片描述
3.2.2查找给定节点的双亲,孩子模块

4运行结果

  1. 进入菜单界面,显示本程序相关信息。
    在这里插入图片描述

  2. 输入1,回车,显示完全二叉树。
    图4-2

  3. 输入2,回车,显示完全二叉树的节点数和叶子数。
    在这里插入图片描述

  4. 输入3,回车,显示完全二叉树的树深。
    在这里插入图片描述

  5. 输入4,回车,显示完全二叉树的前,中,后序遍历。如图4-5所示。
    在这里插入图片描述

  6. 输入5,回车,显示完全二叉树的层次遍历。

  7. 输入6,回车,显示查找给定结点的双亲、左右孩子值。

  8. 输入7,回车,显示“谢谢你的使用!”。

  9. 输入8,回车,显示“输入错误,请重新选择:”。

  10. 输入6,回车,p,回车,显示“二叉树中没有此节点,请重新输入:” 。
    功能较多,在此不一一展示,如需源码和课程设计报告,欢迎关注与私信!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/721395.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于ubuntu的驱动开发

一般的linux驱动开发都是基于交叉编译来进行的&#xff0c;本文尝试着从另一个角度&#xff1a;基于ubuntu的本地驱动开发来学习一下驱动的开发 一、驱动的开发与编译 1.1、编写驱动文件 #include <linux/init.h> #include <linux/module.h> static int hello_i…

FL Studio中文版21最新免费音乐编曲软件制作工具

FL Studio较为适合专业的音乐制作者&#xff0c;操作难度较大&#xff0c;学习门槛也较高&#xff1b;Studio One则主打一站式的音乐制作&#xff0c;从编曲到录音到后期的专辑制作都可以在其中实现&#xff0c;同时操作难度不大&#xff0c;对初学者和业余爱好者都较为友好。 …

【NX】NX二次开发中自动选择当前实体和方向

在NX的二次开发中&#xff0c;我们经常需要选择实体和方向&#xff0c;如果每次手动选择&#xff0c;势必会影响调试的效率&#xff0c;那么有没有办法&#xff0c;让程序一启动就自动选择当前实体和方向呢&#xff0c;自然是有的。 经过我一番研究&#xff0c;因为可能有多个实…

Apikit 自学日记:团队管理

团队管理 一、工作空间管理 工作空间类似于部门或公司的概念&#xff0c;能帮助您更好地管理团队。 1.1 创建空间 点击页面左上角功能菜单&#xff0c;在下拉菜单中选择要切换的工作空间。 点击创建/加入&#xff0c;在引导页面中选择创建工作空间&#xff0c;填写工作空间…

JavaWeb HttpServletRequest

1.HttpServletRequest HttpServletRequest是Java Servlet API中的一个接口&#xff0c;用于表示HTTP请求的对象。 它提供了访问HTTP请求的各种信息和功能&#xff0c;包括请求方法、请求URL、请求头、请求参数、请求体等。 HttpServletRequest是由Servlet容器&#xff08;如…

利用PPT制作简单的矢量图

1.用PPT画一个图形&#xff08;可以多个图&#xff09; 2.鼠标圈住图形 3.利用 Ctrl G 组合图形&#xff0c;再用 Ctrl C 复制 4.打开word—粘贴—选择性粘贴—图片&#xff08;增强性图元文件&#xff09; 确认即可。

【制品】通用制品参库

制品仓库 制品库顾名思义是制品的仓库&#xff0c;制品是软件交付的成果性产物&#xff0c;通常是可运行的二进制形式&#xff0c;因此制品库通常也被称之为二进制制品仓库。制品库在开发阶段为使用各种开发语言的微服务开发者提供依赖解析的唯一入口。在构建阶段为各种语言的…

MongoDB远程复制集集群((两台服务器,8个实例))

第三阶段基础 时 间&#xff1a;2023年7月4日 参加人&#xff1a;全班人员 内 容&#xff1a; MongoDB远程复制集集群 目录 MongoDB远程复制集集群 实验环境&#xff1a;&#xff08;两台服务器&#xff0c;8个实例&#xff09; 环境部署&#xff1a; 安装部署 实 …

零基础自学网络安全,就是这样简单!

建议一&#xff1a;黑客七个等级 黑客&#xff0c;对很多人来说充满诱惑力。很多人可以发现这门领域如同任何一门领域&#xff0c;越深入越敬畏&#xff0c;知识如海洋&#xff0c;黑客也存在一些等级&#xff0c;参考知道创宇 CEO ic&#xff08;世界顶级黑客团队 0x557 成员…

Diffusers学习总结

Diffusers代码&#xff1a;https://github.com/huggingface/diffusers Diffusers使用指南&#xff1a;https://huggingface.co/docs/diffusers/index Diffusers前向加速技巧&#xff1a; float16前向推理

微信小程序申请 wx.getLocation 接口 审核一直不通过

项目需要通过微信的 getLocation 获取本地的位置信息&#xff08;经纬度&#xff09;&#xff0c;但是提交很多次审核都不通过&#xff0c;最后通过写了个项目里用不到的 导航功能 截图录屏才通过了审核。 以下申请文案及配图仅供参考&#xff1a; 因当前业务涉及就近医院挂号…

JointVAE用于单细胞多模态插补和embedding

单细胞多模态数据能够测量细胞的各种特征&#xff0c;从而深入了解细胞和分子机制。然而&#xff0c;多模态数据的生成仍然昂贵且具有挑战性&#xff0c;同时缺失模态也经常发生。最近&#xff0c;机器学习方法已经被开发用于数据补全&#xff0c;但通常需要完全匹配的多模态数…

【剑指 Offer】52. 两个链表的第一个公共节点。 难度等级:简答 -- 中等。双指针法太秀了

文章目录 1. 题目2. 我的解法&#xff1a;哈希表&#xff0c;空间复杂度 0(n)&#xff0c;不符合要求2.1 算法思路2.2 code 3. 双指针法&#xff1a;浪漫相遇太秀了3.1 算法思路3.2 code 1. 题目 题目链接&#xff1a;剑指 Offer 52. 两个链表的第一个公共节点 输入两个链表&…

丢失msvcr120.dll的解决方法

1、什么是MSVCR120.dll&#xff1f; MSVCR120.dll是微软公司开发的Visual 2013程序的一部分。某些应用程序或游戏可能需要此文件才能正常工作。如果msvcr120.dll缺失&#xff0c;无论何时启动应用程序/游戏&#xff0c;都可能会遇到各种错误。 2、 msvcr120.dll软件特色 1、该…

九.图像处理与光学之图像几何变换算法(双线性插值)

九.图像处理与光学之图像几何变换算法(双线性插值) 9.0 前言 ​ 图像几何变换是图像处理中非常基础实用的技能,主要包括图片位移、缩放、镜像、剪切、放射变换等,在对图像进行空间变换的过程中,典型的情况是在对图像进行放大,旋转处理的时候,图像会出现失真的现象。这是…

【半监督医学图像分割 2023 MICCAI】SCP-Net

文章目录 【半监督医学图像分割 2023 MICCAI】SCP-Net摘要1. 简介2. 方法2.1 自交原型预测2.2 典型预测不确定性2.3 无监督原型一致性约束SPCCCPCC 3 实验与结果3.1 数据集和评价指标3.2 实施细节3.3 与其他方法的比较3.4 消融研究 4. 总结 【半监督医学图像分割 2023 MICCAI】…

Word表格设置边框不生效的解决方法

1、这是新建并随意设置的表格&#xff0c;可以看出来上边框、内边框和下边框都是不同的粗细&#xff0c;很不协调。 2、选中表格&#xff0c;然后右击——>表格属性——>边框和底纹。 3、三线表&#xff0c;一般上边框和下边框都是1磅&#xff0c;内边框是0.5磅&#xff…

别再瞎忙活,掌握营销策划的核心机密

很多时候看多了那些广告门上的案例&#xff0c;就感觉出一个策略就一定要引爆市场才行&#xff0c;如果不能引爆&#xff0c;那营销策划就没用&#xff0c;这个非黑即白的思维要改改。 事实上&#xff0c;我们大部分的营销人&#xff0c;做的营销策划方案都是处于灰色地带&…

QT获取电脑系统,主板型号,CPU型号,硬盘型号,内存大小等相关信息(一)通过CMD和WMIC命令行的方式

QT通过CMD和WMIC命令行的方式获取电脑系统&#xff0c;主板型号&#xff0c;CPU型号&#xff0c;硬盘型号等相关信息&#xff0c;包括使用diskpart,wmic,DIrectX等 目录导读 一、DIrectX诊断工具打开窗体查看命令行输出 二、 直接CMD输入SYSTEMiNFO三、WMIC命令查询1.获取系统盘…

PaddleClas:自定义backbone

PaddleClas提供的都是现成的网络结构和权重&#xff0c;不一定适用&#xff0c;所以有必要掌握魔改的技能。 PaddleClas版本&#xff1a;2.5 1&#xff1a;新建 mynet.py 在 ppcls/arch/backbone/model_zoo/ 文件夹下新建一个自己的模型结构文件 mynet.py&#xff0c;即你自己…