![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 95
GE12
这个作者很懒,什么都没留下…
展开
-
BTree,B-Tree,B+Tree,B*Tree的数据结构
BTree,B-Tree,B+Tree,B*Tree的数据结构B树 即二叉搜索树: 1.所有非叶子结点至多拥有两个儿子(Left和Right); 2.所有结点存储一个关键字; 3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树; 如:B树的搜索,从根结点开始,如果查询的关转载 2014-07-03 14:21:30 · 789 阅读 · 0 评论 -
哈希表
什么是哈希表 哈希表(Hash table,也叫散列表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。哈希表就是一种以 键-值(key-indexed) 存储数据的结构,我们只要输入待查找的值即key,即可查找到其对应的值。原创 2016-11-16 13:31:54 · 750 阅读 · 0 评论 -
数据结构总结
数据结构 1.逻辑结构 线性 一般线性表 数组 链表 串原创 2016-05-13 10:35:09 · 399 阅读 · 0 评论 -
SkipList 原理
跳表是允许在有序序列元素内快速搜索的数据结构。通过维护子序列的链接层次结构可以快速搜索,每个连续的子序列跳过比前一个更少的元素。搜索开始于最小的子序列,直到找到两个连续的元素,一个更小,一个大于或等于所搜索的元素。通过链接层次结构,这两个元素链接到下一个最短子序列的元素,其中搜索继续,直到最后我们以完整的顺序搜索。可以概率地或确定性地选择跳过的元素完整的跳表的图示原创 2017-07-10 13:55:15 · 952 阅读 · 0 评论 -
数据结构 图
一,图的定义二,图相关的概念和术语三,图的创建和遍历四,最小生成树和最短路径五,算法实现这一篇我们要总结的是图(Graph),图可能比我们之前学习的线性结构和树形结构都要复杂,不过没有关系,我们一点一点地来总结,那么关于图我想从以下几点进行总结:1,图的定义?2,图相关的概念和术语?3,图的创建和遍历?4,最小生成树和最短路径?5,算法实现?转载 2017-05-26 09:43:12 · 677 阅读 · 0 评论 -
数据结构中各种树
数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成一、线性表 1.数组实现 2.链表二、栈与队列三、树与二叉树 1.树 2.二叉树基本概念 3.二叉查找树 4.平衡二叉树 5.红黑树四、图转载 2016-11-15 20:44:06 · 731 阅读 · 0 评论 -
栈(stack)原理
一.原理 栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。 二.特点栈的基本特点:先入后出,后入先出原创 2016-11-17 10:13:53 · 2492 阅读 · 0 评论 -
堆(heap)原理
堆(英语:heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵树的数组对象。 堆总是满足下列性质:堆中某个节点的值总是大于或小于其父节点的值;堆总是一颗完全树。将根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆。常见的堆有二叉堆、斐波那契堆等。堆支持以下的基本操作: 支持的基本操作build:建立一个空堆;insert原创 2016-11-17 10:58:59 · 1403 阅读 · 0 评论 -
数组与链表的区别
首先从逻辑结构上说,两者都是数据结构的一种。数组是将元素在内存中连续存放,由于每个元素占用内存相同,可以通过下标迅速访问数组中任何元素。但是如果要在数组中增加一个元素,需要移动大量元素,在内存中空出一个元素的空间,然后将要增加的元素放在其中。同样的道理,如果想删除一个元素,同样需要移动大量元素去填掉被移动的元素。如果应用需要快速访问数据,很少或不插入和删除元素,就应该用数组。原创 2016-11-17 09:44:01 · 6395 阅读 · 0 评论 -
链表原理
链表是一种数据结构,和数组同级。比如,Java中我们使用的ArrayList,其实现原理是数组。而LinkedList的实现原理就是链表了。链表在进行循环遍历时效率不高,但是插入和删除时优势明显。链表就是链式存储的线性表。根据指针域的不同,链表分为单向链表、双向链表、循环链表等等。一、 单向链表(slist)链表中最简单的一种是单向链表,每个元素包含两个域,值域和指针域原创 2016-11-16 15:24:55 · 6205 阅读 · 1 评论 -
队列(queue)原理
像栈一样,队列(queue)也是一种线性表,它的特性是先进先出,插入在一端,删除在另一端。就像排队一样,刚来的人入队(push)要排在队尾(rear),每次出队(pop)的都是队首(front)的人。如图1,描述了一个队列模型。队列(Queue)与栈一样,是一种线性存储结构,它具有如下特点:队列中的数据元素遵循“先进先出”(First In First Out)的原则,简称FI原创 2016-11-17 10:19:57 · 46423 阅读 · 3 评论