数据结构
数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。
suixinghero
真正的大师永远怀着一颗学徒的心
展开
-
(B树、B+树和B*树)多路查找树详解
1.二叉树与B树1.1二叉树的问题分析二叉树的操作效率较高,但是也存在问题,请看下面的二叉树:(1)二叉树需要加载到内存的,如果二叉树的节点少,没什么问题,但是如果二叉树的节点很多(比如1亿),就存在以下问题:(2)问题1:再构建二叉树时,需要多次进行i/o操作(海量数据存在数据库或文件中),节点海里,构建二叉树时,速度有影响(3)问题2:节点海量,也会造成二叉树的高度很大,会降低操作速度1.2多叉树(1)再二叉树中,每个节点有数据项,最多有两个子节点。如果允许每个节点可以有更多的数据项和更原创 2020-05-24 20:09:44 · 574 阅读 · 0 评论 -
平衡二叉树(AVL)树详解
1.二叉排序树可能存在的问题给你一个数列{1,2,3,4,5,6},要求创建一颗二叉排序树(BST,如下图可以看到这是二叉排序树存在许多的问题,那怎么解决呢?用平衡二叉树(AVL)来解决.2.平衡二叉树基本介绍(1)平衡二叉树也叫做平衡二叉搜索树(Self-balancing binary search tree)又称为AVL树,可以保证查询效率较高。(2)具有以下特点:它是一颗空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一颗平衡二叉树。平衡二叉树的常用实现方法有红黑树、原创 2020-05-23 15:28:56 · 445 阅读 · 0 评论 -
二叉排序树(BST)的创建和删除
1.二叉排序树介绍二叉排序树:BST(Binary Sort Tree),对于二叉排序树的任何一个非叶子节点,要求左子节点的值比当前节点的值小,如右子节点的值当当前节点值大。如果有相同的值,可以将改节点放在左子节点或右子节点。比如针对数据{7,3,10,12,5,1,9},对应的二叉排序树为:2.二叉排序树的创建2.1思路分析:(1)先判断二叉排序树的根节点是否为空,如果为空则把当前节点复制给跟节点(2)如果不为空,则进行添加操作(3)进行添加操作时先判断当前节点的值是否大于添加节点,如果大原创 2020-05-22 16:59:33 · 442 阅读 · 0 评论 -
二叉树遍历、查找和删除说明
1.二叉树的概念(1)数有很多种,每个节点最多只能有两个子节点的一种形式称为二叉树。(2)二叉树的子节点分为左节点和右节点(3)示意图(4)如果改二叉树的所有叶子节点都在最后一层,并且节点总数=2^n-1,n为层数,则我门称为满二叉树。(5)如果改二叉树的所有叶子节点都在最后一层或者倒数第二层,而且最后一层的叶子节点再左边连续,倒数第二层的叶子节点再右边连续,我们称为完全二叉树。2.二叉数遍历说明(1)前序遍历:先输出父节点,再遍历左子树和右子树,总结起来就是根左右。(2)中序遍历:先原创 2020-05-17 19:48:29 · 325 阅读 · 0 评论 -
链表说明及代码实现
1.链表(Linked List)介绍链表是有序的列表,但是它在内存中是存储如下(1)链表是以节点的方式来存储,是链式存储。(2)每个节点包含data域,next域:指向下一个节点。(3)如图:发现链表的各个节点不一定连续。(4)链表分带头节点的链表和没有头节点的链表,根据实际的需求来确定。(5)单链表(带头节点)逻辑结构示意图如下:...原创 2020-02-23 22:28:14 · 429 阅读 · 0 评论 -
队列说明及代码实现
一、队列1.队列介绍(1)队列是一个有序列表,可以用数组或是链表来实现。(2)遵循先入先出的原则。即:先存入队列的数据,要先取出。后存入的要后取出。(3)示意图:(使用数组模拟队列示意图)2.数组模拟队列思路(1)队列本省是有序列表,若使用数组的结构来存储队列的数据,则队列数组的声明如上图,其中maxSize是该队列的最大容量。(2)因为队列的输出、输入是分别从前后端来处理,因此需...原创 2020-02-16 22:33:56 · 218 阅读 · 0 评论 -
稀疏数组说明及代码实现
一、稀疏sparsearray数组1.先看一个实际的需求编写的五子棋程序中,有存盘和续上盘的功能分析问题:因为该二维数组的很多值是默认0,因此记录了很多没有意义的数据->稀疏数组2.基本介绍当一个数组中大部分元素为0,或则为同一值的数组时,可以使用稀疏数组来保存该数组。稀疏数组的处理方法时:(1)记录数组一共有几行几列,有多少个不同的值。(2)把具有不同值的元素的行列及值...原创 2020-02-07 22:42:38 · 200 阅读 · 0 评论