![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 79
小-豪-豪
这个作者很懒,什么都没留下…
展开
-
Mysql和B+数
基本搜索结构:B-树的插入分析:B+树相比B树的变化:B+树是B树的变形,也是一种多路搜索树,其定义基本与B树相同,除了:1、一个节点中关键字的数量和孩子的数量相等(规则简洁)。2、所有值都要出现在叶子节点上,非叶子节点中的值只是充当路径索引,并且叶子节点要链接起来(方便遍历),非叶子节点由叶子节点的最小值构成。3、为所有叶子节点增加一个链指针。4、所有关键字都在叶子节点出现。5、非叶子节点的子树指针p[i],指向关键字值属于【k[i], k[i+1]】的子树。原创 2020-09-09 22:46:44 · 672 阅读 · 0 评论 -
哈希总结
一:哈希结构1.1、哈希概念 顺序结构以及平衡树中,元素关键码与其存储位置之间没有对应的关系,因此在查找一个元素时,必须要经过关键码的多次比较。顺序查找时间复杂度为O(N),平衡树中为树的高度,即O((log2(N)),搜索的效率取决于搜索过程中元素的比较次数。 理想的搜索方法:可以不经过任何比较,一次直接从表中得到要搜索的元素。 如果构造一种存储结构,通过某种函数(hashFunc)使元素的存储位置与它的关键码之间能够建立一一映射的关系,那么在查找时通过该函数可以很快找到该元素。当向该原创 2020-08-17 16:36:50 · 468 阅读 · 0 评论 -
二叉搜索树、AVL树、红黑树总结
一、二叉搜索树1.1、二叉搜索树概念 二叉搜索树又称二叉排序树,它或者是一颗空树,或者是一颗具有以下性质的二叉树: (1) 若它的左子树不为空,则左子树上所有节点的值都小于根节点的值。 (2) 若它的右子树不为空,则右子树上所有节点的值都大于根节点的值。 (3) 它的左右子树也分别为二叉搜索树。1.2、二叉搜索树的操作 (1) 二叉搜索树的查找 (2) 二叉搜索树的插入 插入的具体过程如下: a. 数为空,则直接插入 b. 数不为空,按二叉搜索树性质原创 2020-08-17 09:41:03 · 346 阅读 · 0 评论 -
十大经典排序算法总结
1、冒泡排序1、对前n个元素从头到尾两两进行比较,如果第一个比第二个大,就交换他们两个,最后得到的最后一个元素就是前n个元素的最大值。2、然后对前n-1个、前n-2个…,一直到前两个元素进行第一步操作,依次得到他们里面的最大值。3、进行n-1次第一步的操作后就将元素排序好了。平均时间复杂度:O(n^2)最差时间复杂度:O(n^2)空间复杂度:O(1)数据对象稳定性:稳定(相同的元素排序后相对位置不改变)#include <stdio.h>#include <iostrea原创 2020-07-25 22:59:30 · 239 阅读 · 0 评论 -
力扣编程题分析(150):逆波兰表达式求值
题目描述根据逆波兰表示法,求表达式的值。有效的运算符包括 +, -, *, / 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。说明:整数除法只保留整数部分。给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。思路:波兰表达式又称后缀表达式,后缀表达式求值过程如下:规则:从左到右遍历表达式的每个数字和符号,遇到数字就进栈,遇到字符就将栈顶的...原创 2020-01-22 09:45:57 · 324 阅读 · 0 评论 -
栈的应用——四则运算表达式求值(逆波兰式)
逆波兰式也称为后缀表达式,也就是将运算符写在操作数之后。逆波兰式的作用:实现逆波兰式的算法,难度并不大,但为什么要将看似简单的中序表达式转换为复杂的逆波兰式?原因就在于这个简单是相对人类的思维结构来说的,对计算机而言中序表达式是非常复杂的结构。相对的,逆波兰式在计算机看来却是比较简单易懂的结构。因为计算机普遍采用的内存结构是栈式结构,它执行先进后出的顺序。中缀表达式转后缀表达式:我们把平时...原创 2020-02-04 18:19:19 · 568 阅读 · 0 评论 -
二叉树的最近公共祖先节点
1、搜索二叉树(二叉搜索树)**概念:**一颗二叉树可以为空,如果不为空,满足以下性质:1、非空左子树的所有键值小于其根节点的键值。2、非空右子树的所有键值大于其根节点的键值。3、左右子树都是二叉搜索树。若二叉树是一个二叉搜索树,方法如下所述:从树的根节点开始和两个节点作比较,如果当前节点的值比两个节点的值都大,则这两个节点的最近公共祖先节点一定在该节点的左子树中,则下一步遍历当前节点...原创 2020-03-13 21:09:47 · 494 阅读 · 0 评论 -
循环队列的两种实现方式
线性表有顺序存储和链式存储,队列作为一种特殊的钱性表,也同样存在这两种存储方式。队列顺序存储的不足我们假设一个队列有n个元素,则顺序存储的队列需建立一个大于n的数组,并把队列的所有元素存储在数组的前n个单元,数组下标为0的一端即是队头。所谓的入队列操作,其实就是在队尾追加一个元素,不需要移动任何元素,因此时间复杂度为O(1),如下图所示:与栈不同的是,队列元素的出列是在队头,即下标为0的位...原创 2020-02-06 15:40:14 · 3462 阅读 · 1 评论