数据结构 ---- 二叉搜索树

本文详细介绍了二叉搜索树的概念及其特性,纠正了关于节点值比较的常见误解,并探讨了新建与初始化的区别。接着,文章通过代码展示了查找、插入和删除操作,强调了删除操作的复杂性,并提供了不同删除情况的解决方案。
摘要由CSDN通过智能技术生成

一直对于二叉搜索树(又叫二叉排序树,也叫二叉查找树),没有很好的理解,决定花点时间来学习and总结。。


二叉搜索树也是二叉树的一种。(就像堆也就二叉树的一种一样。。。)

只不过,二叉搜索树也是有其他要求:对于所有的子树,其根节点的值大于左子树上的所有结点的值,而小于右子树上所有结点的值的值。。

对于错误的理解:对于所有的结点,要大于其左结点,小于其右结点。。(PS:这种理解是错误的,一定要注意。。)

还有一点需要注意的是:我们的大于和小于都应该是严格的。


========== 下面主要针对,其建立、增删改查这些操作来进行说明 ==============

====== 对于所有的数据结构,我们对其增删改查都应该有比较清楚的认识==========

首先我们定义一下二叉树的结构(链式结构):

<span style="font-size:18px;"><span style="font-size:18px;"># 结点的数据结构
typedef int ElementType;
typedef struct
{
    ElementType Element;
    ElementType *left;
    ElementType *right;
}TreeNode;

# 有必要区别一下结点和树的区别。
具体来说的话:
结点的话,就是有数据+空间。
树的话,就是一个指向树的头结点的指针。
现在,我说给你你棵树,肯定就是给你一个指向头结点的指针。

</span></span>


MakeEmpty:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值