当前位置: 首页 > news >正文

数据结构--树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.lryc.cn/news/142137.html

相关文章:

  • Presto之Driver个数
  • R语言响应面(RSM)、线性模型lm分析生产过程影响因素可视化
  • 剑指Offer --- 字符串篇
  • 7.elasticsearch同步工具-logstah
  • Redis之stream类型解读
  • C++ 网络编程项目fastDFS分布式文件系统(九)总结
  • 第五章 树与二叉树 一、树的定义与考点
  • C语言基础之——指针(下)
  • 小研究 - JVM 的类装载机制
  • 项目---日志系统
  • 设计模式--建造者模式(Builder Pattern)
  • 若依vue打印的简单方法
  • Rust 基础语法学习
  • iOS开发Swift-函数
  • 序列化协议:JSON和XML
  • 江西萍乡能源石油化工阀门三维扫描3d测量抄数建模-CASAIM中科广电
  • Go【gin和gorm框架】实现紧急事件登记的接口
  • 第一个VUE程序?
  • 电阻器件的分类
  • QT基础教程之二 第一个Qt小程序
  • Edge用户数据目录查找
  • 最新外卖霸王餐小程序、H5、微信公众号版外卖系统源码|霸王餐美团/饿了么系统/外卖红包cps粉丝裂变玩法源码下载
  • 数据库事务四大特性
  • 浅谈Router和Route
  • Linux环境安装jdk
  • 数据隐私与安全在大数据时代的挑战与应对
  • vue3 基础知识 (生命周期) 06
  • 【Eclipse】汉化简体中文教程(官方汉化包,IDE自带软件安装功能),图文详情
  • Kotlin协程flow的debounce参数timeoutMillis特性
  • oracle 12c怎样修改varchar2允许的最大长度