【数据结构与算法分析】二叉查找树与AVL树

本文探讨了二叉查找树的特性,每个节点的左子树包含小于节点值的元素,右子树包含大于节点值的元素。通过后序、中序表达式可以转化成表达式树。此外,文章还介绍了二叉查找树的插入、删除等操作的实现。
摘要由CSDN通过智能技术生成

二叉树与普通树的区别在于二叉树的每个节点最多只能有两个儿子,节点就是有所存储的元素信息加上对其他节点(左、右子树)的引用组成的结构。表达式树就是二叉树一个很好地实现,如下图

这里写图片描述

表达式树可以由后序表达式转化而来,下图就实现了这个想法

这里写图片描述

而后序表达式又可以通过中序表达式转化而来,据悉转化过程见下图

这里写图片描述

查找树ADT——二叉查找树的实现细节

使二叉树成为二叉查找树的性质是,对于树中的每个节点X,它的左子树中所有项的值小于X中项的值,而它的右子树中所有项的值大于X中的项。下面的代码是二叉查找树节点类实现,代码如下

/*
 *
 *
 *BinaryNode:二叉查找树的节点类
 *
 *
 **/
private static class BinaryNode<AnyType> {

    AnyType element;
    BinaryNode<AnyType> left;
    BinaryNode<AnyType> right;

    // 构造器
    BinaryNode (AnyType theElement) {
        this (theElement, null, null);
    }

    BinaryNode(AnyType theElement, BinaryNode&l
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值