【头歌】二叉树的二叉链表存储及基本操作

news2024/11/24 17:50:53

第1关:先序遍历创建二叉链表存储的二叉树及遍历操作

任务描述

本关任务:以二叉链表作存储结构存储二叉树,利用先序递归遍历创建二叉树,并依次进行二叉树的前序、中序、后序递归遍历。

相关知识

在顺序存储结构中,利用数组下标表示元素的位置及元素之间孩子或双亲的关系,因此对于非完全二叉树,如果需要增加很多空结点才能将一棵二叉树改造成为一棵完全二叉树,采用顺序存储结构会造成空间的大量浪费,这时不宜用顺序存储结构, 而应该考虑使用链式存储结构。

二叉树的二叉链表存储结构

由于二叉树的每个结点至多有两个孩子,二叉树链式存储结构的每个结点除了需要存储结点本身的信息之外,还需要存储结点左右孩子的地址,二叉树的链式存储中的结点结构如图所示:

 二叉树的链式存储中的结点结构

其中,lchild和rchild是分别指向该结点左孩子和右孩子的指针,data是数据元素的内容,这种结构称为二叉链表。结点的类型声明如下:

typedef  struct  BiTNode
{
  TElemType  data;
  struct  BiTNode  *lchild, *rchild;
}BiTNode ,*BiTree;
  • data表示数据域,用于存储放入结点值。
  • lchild和rchild分别表示左指针域和右指针域,分别存储左孩子和右孩子结点(即左、右子树

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

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

相关文章

失去中国市场的三星继续称霸全球,中国手机的份额反而进一步下降了

市调机构canalys公布了二季度全球手机市场的数据,数据显示三星、苹果的市场份额保持稳定并位居全球前二,三星的表现显然让人称奇,一直被唱衰,却一直都稳稳占据全球手机市场第一名。 从Canalys公布的数据可以看到,三星以…

【Go】 map 精髓理解

map go map 的底层结构 hmap,的四个元素 然后再讲一下 buckets 的元素,讲一下 hash 冲突,和解决方法 再讲一下,增量扩容和等量扩容 再讲一下增删改查的过程,就查询过程 map 基础 向值为 nil 的 map 添加元素会发生 pa…

青枫壁纸小程序V1.4.0(后端SpringBoot)

引言 那么距离上次的更新已经过去了5个多月,期间因为忙着毕业设计的原因,更新的速度变缓了许多。所以,这次的更新无论是界面UI、用户功能、后台功能都有了非常大的区别。希望这次更新可以给用户带来更加好的使用体验 因为热爱,更…

【湍流介质的三维传播模拟器】全衍射3-D传播模拟器,用于在具有随机和背景结构的介质中传播无线电和光传播(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 🌈4 Matlab代码实现 💥1 概述 全衍射3-D传播模拟器是一种用于模拟在具有随机和背景结构的介质中传播无线电和光的工具。它可以帮助研究人员和工程师理解和预测无线电波和光波…

多重感知机MLP:Mnist

文章目录 网络结构代码common_utils.pynetwork.pyprovider.pytrain.pytest.pyvisual.py 实验训练结果测试结果可视化 网络结构 输入过程输出28*28Flatten784784Linear300300Linear100100Linear10 代码 文件结构: common_utils.py 用来输出日志文件 # common_…

基于扩展(EKF)和无迹卡尔曼滤波(UKF)的电力系统动态状态估计

1 主要内容 该程序对应文章《Power System Dynamic State Estimation Using Extended and Unscented Kalman Filters》,电力系统状态的准确估计对于提高电力系统的可靠性、弹性、安全性和稳定性具有重要意义,虽然近年来测量设备和传输技术的发展大大降低…

Linux常用嗅探工具(1):fping命令

fping的优点: 可以一次ping多个主机可以从主机列表文件ping结果清晰 便于脚本处理速度快 fping的安装: 前置安装cgg编译器 : yum -y install gcc 下载fping: wget http://fping.org/dist/fping-4.0.tar.gz 解压: …

力扣 -- 918. 环形子数组的最大和

一、题目: 题目链接:918. 环形子数组的最大和 - 力扣(LeetCode) 二、解题步骤: 下面是用动态规划的思想解决这道题的过程,相信各位小伙伴都能看懂并且掌握这道经典的动规题目滴。 三、参考代码&#xff1…

Redis 基础知识和核心概念解析:探索 Redis 的数据结构与存储方式

🌷🍁 博主 libin9iOak带您 Go to New World.✨🍁 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~&#x1f33…

F---图像识别---河南省第十三届ICPC大学生程序设计竞赛

链接:登录—专业IT笔试面试备考平台_牛客网 来源:牛客网 输入 10 10 ........*. ........*. ........*. ........*. ....#...*. ........*. ........*. ********** ........*. ........*. 输出 -4 3 解析: 遍历整个二维数组&#xff0…

dubbo从基于注解方式转为基于xml配置方式的使用心得

过程中遇到的问题百分之九十九的问题都是因为版本不兼容问题,所以在引入依赖的时候要注意这点,可以从maven central repository官方仓库这里看所要引用版本与其可兼容的版本

畅想未来感汽车HMI设计的奇妙之旅!

当下智能电动汽车的发展势头越来越高涨,与智能电动汽车相关的汽车HMI设计也成为各个品牌重点发力的地方,汽车HMI设计正在前所未有的新高度,本篇文章就来聊聊HMI设计的那些事 ⬇⬇⬇点击获取更多设计资源 https://js.design/community?categ…

prometheus监控mysql8.x以及主从监控告警

mysql8.x主从部署请看下面文档 docker和yum安装的都有 Docker部署mysql8.x版本互为主从_争取不加班!的博客-CSDN博客 Mysql8.x版本主从加读写分离(一) mysql8.x主从_myswl8双主一从读写分离_争取不加班!的博客-CSDN博客 安装部署…

C++OpenCV(4):图像截取与掩膜操作

🔆 文章首发于我的个人博客:欢迎大佬们来逛逛 🔆 OpenCV项目地址及源代码:点击这里 文章目录 图像截取图像掩膜操作 图像截取 ROI操作,指的是:region of interest,感兴趣区域。 我们可以对一张…

Vue 项目增加版本号输出, 可用于验证是否更新成功

webpack 1. vue.config.js 中增加以下配置, 此处以增加一个日期时间字符串为例, 具体内容可以根据自己需求自定义 // vue.config.js module.exports {chainWebpack(config) {config.plugin(define).tap(args > {args[0][process.env].APP_VERSION ${JSON.stringify(new …

行为型模式--模版方法模式(图文详解)

模版方法模式--图文详解 采摘机器人-场景体验模版方法模式-解决问题模版方法模式-定义优缺点优点缺点 采摘机器人-场景体验 今天看抖音上外国开始使用采摘苹果的机器人,我们模仿一下的他的大体流程: 主体采摘车进入苹果园进入苹果指定采摘地点&#xf…

通过自动化单元测试的形式守护系统架构

目录 0前言 1 背景 2 为什么选择 Archunit 3 Archunit 是什么 4 引入 Archunit 4.1 开始就是如此简单 4.2 如何组织架构规则 4.3 团队如何规范化 0前言 通过自动化单元测试的形式守护系统架构是一种有效的方式,可以确保系统在不断演进和修改的过程中保持稳…

Python实战之数据挖掘详解

一、Python数据挖掘 1.1 数据挖掘是什么? 数据挖掘是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中,通过算法,找出其中的规律、知识、信息的过程。Python作为一门广泛应用的编程语言,拥有丰富的数据挖掘库&#…

数据分享|R语言逻辑回归、Naive Bayes贝叶斯、决策树、随机森林算法预测心脏病...

全文链接:http://tecdat.cn/?p23061 这个数据集(查看文末了解数据免费获取方式)可以追溯到1988年,由四个数据库组成。克利夫兰、匈牙利、瑞士和长滩。"目标 "字段是指病人是否有心脏病。它的数值为整数,0无…

盖子的c++小课堂——第二十讲:动态规划

前言 中间呢其实还有两讲,但是那两讲太easy了,根本难不倒你们,所以,我索性不放了~~那我们今天讲一个比较容易的知识点——动态规划(终于没人给我催更了!哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈…