数据结构速成--查找

由于是速成专题,因此内容不会十分全面,只会涵盖考试重点,各学校课程要求不同 ,大家可以按照考纲复习,不全面的内容,可以看一下小编主页数据结构初阶的内容,找到对应专题详细学习一下。

目录

一、顺序查找

二、折半查找

三、平衡二叉树(AVL树)

四、散列查找


一、顺序查找

顺序查找,主要用于线性表中进行查找。

二、折半查找

折半查找(二分查找),仅适用于有序的顺序表

这里涉及到了二叉排序树,注意左子树都小于根,右子树都大于根。树是递归定义的,所以记住左孩子<父结点,右孩子>父结点。

三、平衡二叉树(AVL树)

平衡二叉树就是左右子树高度之差的绝对值不超过1,就是说高度差=左子树高度-右子树高度=0、1、-1

当树不平衡时,我们就需要调整,我们要分清是什么结点导致了树的不平衡,比如左子树多了个左孩子,右子树多了个左孩子等等。

网上有很多调整平衡二叉树的教程,无非就是左旋和右旋。实际上我们只需要找到第一个不平衡结点,向下找两个连续的结点进行调整即可。

插入了90导致了66不平衡,就向下找两个连续的结点,一定要在66到90的路上找,所以找到了68、70,所以我们只需要对66、68、70三个结点进行调整,让这三个结点变成平衡二叉树,再把剩下的结点按性质插回去。

四、散列查找

相关推荐
我命由我123452 小时前
方差(实例实操、与标准差的区别)
java·数据结构·算法·数据分析·java-ee·intellij-idea·idea
努力努力再努力wz3 小时前
【高性能网络库与HTTP Server系列】:基于主从 Reactor 模型实现高性能 C++ 网络库与 HTTP Server
开发语言·网络·数据结构·数据库·c++·网络协议·http
什巳3 小时前
JAVA练习275-乘积最大子数组
java·开发语言·数据结构·算法
码完就睡4 小时前
数据结构——串的模式匹配算法(BF算法、KMP算法)
数据结构·算法
tachibana24 小时前
hot100 排序链表(148)
java·数据结构·算法·leetcode·链表
Tim_104 小时前
【C++】015、函数参数:值传递,指针传递,引用传递的区别
数据结构·c++·算法
Yang_jie_036 小时前
笔记:数据结构(链表)
数据结构·笔记·链表
aqiu1111116 小时前
【算法日记16】LeetCode 283. 移动零:O(N) 双指针魔法 (附可视化动画源码)
数据结构·算法
问君能有几多愁~14 小时前
C++ 数据结构复习笔记
数据结构·c++·笔记
至乐活着15 小时前
深入解析跳表SkipList:原理、实现与性能优化实战
数据结构·算法·跳表·skiplist·java实现