树结构、二叉树概念

本文详细介绍了树这种抽象数据类型,包括其基本特征,如每个节点的子节点数量限制,根节点和父节点的概念,以及树中不存在环路。特别讨论了二叉树的定义,强调了二叉树的两种存储方式——基于指针的链式存储和基于数组的顺序存储。同时,对满二叉树和完全二叉树的概念进行了阐述,指出满二叉树每个节点都有两个子节点,而完全二叉树的叶子节点分布特点。最后,提及了基于指针的链式存储结构在实现二叉树时的节点定义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

树实际上是一种抽象数据类型 ADT 或者实现这种抽象数据类型的数据结构,可以用于模拟具有树状结构性质的数据集合,是由 n 个有限节点构成的一个具有层次关系的集合。
树结构特点:
1、每个节点都只有有限个子节点或者无子节点 2、没有父节点的节点称为根节点
3、每个非根节点尤其仅有一个父节点
4、除了根节点外,每个子节点可以分为多个互不相关的子树
5、树中没有环路 cycle

二叉树就是每个节点最多有 2 个分叉子节点,具体的存储方式有基于指针的链式存储和基于数组的顺序存储,最常见的是基于指针的方式,基于数组的方式比较浪费内存。
满二叉树:
每个节点都有左右两个子节点
完全二叉树:
叶子节点分布在层次结构的最下面或者倒数第二层,最下面一层的叶子节点都靠左排列。除了最下面一层,其他层结点都是饱满的,并且最下层上的结点都集中在该层最左边的若干位置上。(满二叉树也是完全二叉树)
基于指针的链式存储方式 :
public class Node{
private int data;//需要存储的数据
private Node left;//左子树
private Node right;//右子树
}
基于数组的链式存储方式 :
对于节点之间的父子关系,通过数组的下标计算得到对应的存储位置。例如节点 x 存储数组中下标为 i 的位置,那么下标为 2i 的位置存储的是它的左子节点;下标 2i+1 的位置存储的就是它的右子节点,下标为 i/2 的位置存储的就是它的父节点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值