《重学数据结构》之什么是二叉树?(上)

简介: 基本概念树,一种非线性表数据结构:节点“树”里面的每个元素父子关系连线相邻节点之间的关系兄弟节点节点的父节点是同一个节点根节点没有父节点的节点叶(子)节点没有子节点的节点节点的高度节点到叶节点的最长路径(边数)树的高度根节点的高度节点的深度根节点到该节点所经历的边的个数节点的层数节点的深度+1

基本概念

树,一种非线性表数据结构:

  • 节点
    “树”里面的每个元素
  • 父子关系
    连线相邻节点之间的关系
  • 兄弟节点
    节点的父节点是同一个节点
  • 根节点
    没有父节点的节点
  • 叶(子)节点
    没有子节点的节点
  • 节点的高度
    节点到叶节点的最长路径(边数)
  • 树的高度
    根节点的高度
  • 节点的深度
    根节点到该节点所经历的边的个数
  • 节点的层数
    节点的深度+1

image.png

二叉树(Binary Tree)

最常用的树结构。

image.png

每个节点最多有两个子节点:左子节点,右子节点。

  • 满二叉树
    叶节点全在最底层,除叶节点外,每个节点都有左右两个子节点
  • image.png
  • 完全二叉树
    叶节点都在最底下两层,最后一层的叶节点都靠左排列,且除最后一层,其他层节点个数都达到最大

为啥就把最后一层的叶子节点靠左排列的叫完全二叉树?靠右排列为啥就不行?

要搞清楚完全二叉树为啥这么定义,先学习

如何存储二叉树?

基于指针或者引用的二叉链式存储法

image.png

每个节点有三个字段:

  • 一个存储数据
  • 另两个指向左右子节点的指针

大部分二叉树代码都是通过这种结构实现的。

目录
相关文章
|
5天前
【数据结构】二叉树(遍历,递归)
【数据结构】二叉树(遍历,递归
14 2
|
11天前
|
数据可视化
数据结构——lesson8二叉树的实现
本文介绍了二叉树的基本操作和实现,包括二叉树的构建、销毁、节点个数计算、叶子节点个数、第k层节点个数、查找、高度计算以及判断是否为完全二叉树的方法。通过递归和层序遍历等技巧,详细阐述了这些操作的原理和代码实现。文章以实例和图解帮助读者理解二叉树的各种特性和操作。
|
2天前
【数据结构】二叉树的三种遍历(非递归讲解)
【数据结构】二叉树的三种遍历(非递归讲解)
5 1
|
2天前
|
存储
【数据结构】二叉树相关oj题(一)
【数据结构】二叉树相关oj题(一)
7 1
|
5天前
|
存储 分布式数据库
[数据结构]~二叉树
[数据结构]~二叉树
|
5天前
|
C语言
【C语言/数据结构】二叉树(层序遍历|判断完全二叉树|性质)
【C语言/数据结构】二叉树(层序遍历|判断完全二叉树|性质)
277 52
|
5天前
【数据结构】二叉树-堆(top-k问题,堆排序,时间复杂度)
【数据结构】二叉树-堆(top-k问题,堆排序,时间复杂度)
15 4
|
5天前
【数据结构】二叉树-堆(函数实现)
【数据结构】二叉树-堆(函数实现)
11 2
|
5天前
|
存储 分布式数据库
【数据结构】树和二叉树堆(基本概念介绍)
【数据结构】树和二叉树堆(基本概念介绍)
20 6
|
10天前
|
机器学习/深度学习 分布式数据库
数据结构第六课 -----链式二叉树的实现
数据结构第六课 -----链式二叉树的实现