数据结构--树4.2.1(二叉树)

目录

一、二叉树的存储结构

二、二叉树的遍历


 

一、二叉树的存储结构

顺序存储结构:二叉树的顺序存储结构就是用一维数组存储二叉树中的各个结点,并且结点的存储位置能体现结点之间的逻辑关系。

链式存储结构:二叉树每个结点最多只有两个孩子,所以它设计一个数据域和两个指针域是比较自然的想法,我们称这样的链表叫做二叉链表。

lchilddatarchild

定义代码:

typedef struct Bitnode
{ElemType data;struct Bitnode * lchild ,* rchild;
}Bitnode ,*Bitree;

二、二叉树的遍历

1、二叉树的遍历(traversing binary tree)是指从根结点出发,按照某种次序依次访问二叉树中所有结点,使得每个结点被访问一次且仅被访问一次。

2、二叉树的遍历次序不同于线性结构,线性结构最多也就是分为顺序、循环、双向等简单的遍历方式。

3、树的结点之间不存在唯一的前驱和后继的关系,在访问一个结点后,下一个被访问的结点面临着不同的选择。

4、遍历方式:

(1)前序遍历

        若二叉树为空,则空操作返回,否则先访问根结点,然后前序遍历左子树,在前序遍历右子树。

 

(2)中序遍历

        若树为空,则空操作返回,否则从根结点开始(注意:并不是先访问根结点),中序遍历根结点的左子树,然后是访问根结点,最后访问中序遍历右子树

 

 

(3)后序遍历

        若树为空,则空操作返回,否则从左到右先从叶子后结点的方式遍历访问左右子树,最后访问根结点。 

 

(4)层序遍历

         若树为空,则空操作返回,否则从树的第一层,也就是根结点开始访问,从上而下逐层遍历,在同一层中,按从左到右的顺序对结点逐个访问。

 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux系统中详解u-boot之网络移植与调试

​今天给大家讲一讲如何完善u-boot网络部分的移植和调试。 一、前章回顾 上一章,已经讲过如何讲uboot.2022.10版本移植到我们自己的imx6ull开发板上,但是最后编译下载后网络部分未能正确识别,今天我们就来讲一讲网络部分的调试。 上一篇ub…

Java“牵手”1688淘口令转换API接口数据,1688API接口申请指南

1688平台商品淘口令接口是开放平台提供的一种API接口,通过调用API接口,开发者可以获取1688商品的标题、价格、库存、商品快递费用,宝贝ID,发货地,区域ID,快递费用,月销量、总销量、库存、详情描…

扫盲:常用NoSQL数据库

前言 关系型数据库产品很多,如 MySQL、Oracle、Microsoft SQL Sever 等,但它们的基本模型都是关系型数据模型。 非关系型数据库又称为:NoSQL ,没有统一的模型,而且是非关系型的。 常见的 NoSQL 数据库包括键值数据库、…

如何使用 Tailwind CSS 设计高级自定义动画

使用Tailwind CSS掌握动画技术,为用户带来难忘的体验 开篇 动画已经成为网页设计的重要组成部分,使开发人员能够创建引人入胜和互动的用户体验。 Tailwind CSS,一款流行的实用型CSS框架,提供了一套强大的工具,可以轻松…

CorelDRAW快捷键大全

CorelDRAW是一款非常优秀且专业的平面设计软件,为用户多种强大的平面设计所需要用到的功能,帮助用户能够更好的进行设计,快速的达到自己想要的标准。下面小编就给大家分享一下CorelDRAW快捷键大全,有需要的小伙伴快来看一看吧。 …

西门子V20变频器外部端子功能说明

西门子V20变频器外部端子功能说明 如下图所示,为V20变频器的实物图, 如下图,为西门子V20变频器的外部端子编号和对应功能的基本说明: 具体的端子功能说明可参考以下内容: 更多关于V20变频器的信息可以参考以下链接中的内容:

JVM 之字节码(.class)文件

本文中的内容参考B站尚硅谷宋红康JVM全套教程 你将获得: 1、掌握字节码文件的结构 2、掌握Java源代码如何在JVM中执行 3、掌握一些虚拟机指令 4、回答一些面试题 课程介绍 通过几个面试题初始字节码文件为什么学习class字节码文件什么是class字节码文件分析c…

初探---Qt

目录 一、介绍Qt 二、软件安装 三、QT工具介绍 四、Assistant帮助文档的使用 五、设计师界面的介绍 ​编辑 六、QT工程项目各文件初始程序的介绍 1> 配置文件:.pro文件 2> 头文件 3> 源文件 4> 主程序 5> 各文件之间调用方式 七、第一个…

文件上传漏洞复现(CVE-2018-2894)

文章目录 搭建环境启动环境漏洞复现 前提条件: 1.安装docker docker pull medicean/vulapps:j_joomla_22.安装docker-compose docker run -d -p 8000:80 medicean/vulapps:j_joomla_23.下载vulhub 搭建环境 进入vulhb目录下的weblogic,复现CVE-2018-289…

MPI之MPI_Sendrecv接口以及空进程概念介绍

MPI_Sendrecv函数原型 int MPI_Sendrecv(const void *sendbuf, int sendcount, MPI_Datatype sendtype, int dest, int sendtag,void *recvbuf, int recvcount, MPI_Datatype recvtype, int source, int recvtag, MPI_Comm comm, MPI_Status *status);其中各个参数的含义如下&…

pycharm 打开Terminal时报错activate.ps1,因为在此系统上禁止运行脚本,并因此无法进入虚拟环境

pycharm 打开Terminal时报错activate.ps1,因为在此系统上禁止运行脚本,并因此无法进入虚拟环境 如下图所示: 网上说可以set_restrictFalse什么的,虽然也可但可能会降低电脑安全性,可以将下面的终端改为cmd.exe即可

(二十)大数据实战——Flume数据采集的基本案例实战

前言 本节内容我们主要介绍几个Flume数据采集的基本案例,包括监控端口数据、实时监控单个追加文件、实时监控目录下多个新文件、实时监控目录下的多个追加文件等案例。完成flume数据监控的基本使用。 正文 监控端口数据 ①需求说明 - 使用 Flume 监听一个端口&am…