首页 > 其他分享 >数据结构 查找 树形查找

数据结构 查找 树形查找

时间:2023-07-14 20:45:32浏览次数:28  
标签:结点 排序 BST 树形 二叉 插入 查找 数据结构

1.二叉排序树

二叉排序树可以提高查找、插入和删除的效率。

(1)二叉排序树(BST)的定义
image
定义比较简单,左子树所有结点<根节点<右子树所有结点
同时左右子树也分别都是二叉排序树
特点:对二叉排序树进行中序遍历,可以得到一个递增有序序列。

(2)二叉排序树的插入
BST的插入是为了其构造而使用的一个操作
给定的查找表不会直接给出BST的树形结构,而是给出一个线性的序列,所以在使用BST进行查找时,要先根据原始的线性查找表构造出BST的树形结构,这个过程的方法就是将关键字按二叉排序树的定义挨个插入到树中。
image
插入方法就是:
当树为空时,直接插入;当树不为空时,将待插入关键字逐层与根节点的值进行比较,如果待插入关键字小于当前根节点,则向左子树深入;反之则向右子树深入。直到到达最后一层,将这个关键字插入为BST的一个新的叶结点。
BST的插入算法是一个递归算法。

(3)二叉排序树的删除
删除某个结点分为两种情况,当删除的节点为叶结点时,则直接删除;否则需要用其子树上的结点进行重新连接。
image
删除非叶节点时,如果这个节点的左/右子树为空,则直接把另一边的子树替补到当前位置即可,比较简单。
如果该结点的左右子树都不为空,则需要找到其右子树上最小的节点k(即右子树中序序列中第一个结点)。用结点k替补到当前位置后,还需要对结点k进行删除操作。
image

(4)二叉排序树的查找效率分析。
image
(注意二叉排序树与二分查找的对比)

其查找效率受到树高的影响
平衡二叉树的情况下,平均查找长度为O(log2n)
在最坏的单支树的情况下,平均查找长度为O(n)
image

2,平衡二叉树

平衡二叉树是一种特殊的BST,为了提高BST的查找效率。

标签:结点,排序,BST,树形,二叉,插入,查找,数据结构
From: https://www.cnblogs.com/satsuki26681534/p/17554937.html

相关文章

  • 数据结构(第八章)
    数据结构(第八章)排序一、插入排序1.1、直接插入排序直接插入排序的基本操作是将一个记录插入到已经排好序的有序表中,从而得到一个新的、记录数增1的有序表。代码展示:#defineMaxSize100//定义一个顺序表结构typedefstruct{intdata[MaxSize+1];//定义一个排序数......
  • 数据结构之线性表
    线性表的定义和操作线性表的定义    线性表是具有相同数据类型的n(n>=0)个数据元素的有限序列,其中n为表长,当n=0时线性表是一个空表。若用L命名线性表,则其一般表示为L=(a1,a2,...ai,ai+1,...an)几个概念:   相同是指每个数据元素所占空间一样大。   ai是线......
  • 严蔚敏 数据结构 配套教材 PDF
    目录严蔚敏数据结构配套教材PDF下载地址:严蔚敏数据结构配套教材PDF配套教材包括:严蔚敏《数据结构题集》(C语言版).pdf严蔚敏《数据结构》(C语言版)配套题库【名校考研真题+章节题库+模拟试题】严蔚敏《数据结构》(C语言版)笔记和习题(含考研真题)详解严蔚敏《数据结构》(C语言版......
  • Redis底层数据结构
    Redis是什么?Redis是一个键值数据库,以“快”著称Redis是为什么这么快?我们都知道Redis很快,它在接收到一个键值对数据后,能以微妙级别的速度找到数据并快速完成操作。数据库这么多,为啥Redis能有这么突出的表现呢?一方面,这是因为它是内存数据库,所有操作都在内存上完成,内存的访问速......
  • 数据结构练习笔记——单链表的创建
    单链表的创建【问题描述】从键盘终端输入若干整数,为其创建带头节点的单链表存储结构【样例输入】51223323345【样例输出】1223323345【样例说明】第一行的数为单链表中元素的个数,后面为各元素的值#include<iostream>usingnamespacestd;structLNode{......
  • 解决redis 根据key查找值,修改值的具体操作步骤
    Redis根据Key查找值和修改值Redis是一个开源的内存数据库,常用于缓存、消息队列和数据存储等应用场景。它支持丰富的数据类型,并提供了灵活的命令集来操作数据。这篇文章将介绍如何使用Redis根据Key查找值和修改值,并提供代码示例。1.RedisKey-Value数据结构在Redis中......
  • 数据结构之数据结构要学什么,基本概念,三要素
       我从大二上学期的时候学了数据结构,但是当时对数据结构的重要性并不太重视,直到在升大三的暑假,才意识到数据结构对以后学语言和找工作方面的重要性,所以亡羊补牢,为时未晚,尝试着结合b站上王道考研数据结构课,来记录自己对知识和代码的理解。  数据结构学习的内容可以理解......
  • 数据结构--查找
    数据结构--查找7.1查找的概念在哪里找?---查找表查找表是由同一类型的数据元素(或记录)构成的集合.由于"集合"中的数据元素之间存在着松散的关系,因此查找表是一种灵便的结构什么是查找?-----根据给定的某个值,在查找表中确定一个关键字等于给定值的数据元素或(记录).......
  • 数据结构学习5
    17、顺序查找①查找的基本概念基本概念查找表:由同一类型的数据元素(或记录)构成的集合查找:查询特定元素是否在表中查找成功:若表中存在特定元素,称查找成功,应输出该记录查找不成功:表中不存在给定值的元素,称查找不成功静态查找:只查找,不改变集合内的数据元素动态查找:......
  • 数据结构学习6
    21、哈希查找表①哈希表的基本概念哈希表的概念哈希表:即散列存储结构散列存储的基本思想:建立关键码与存储位置对应关系,或者说由关键码的值决定数据的存储的地址。优点:查找速度极快,查找效率与元素个数无关例1:若将学生信息按如下方式存入计算机,如:将2001011810201的......