
数据结构
天才之上
路上的风景一片精彩。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
数据结构:数组
目录数组一维数组二维数组三维及更高维数组数组数组是最熟悉也是最基础的一种结构了,有限个相同数据类型的元素按顺序排列的集合为数组。数组的数据是连续的,有上界下界,在其中的元素都有属于自己的索引值,即下标,通过这些下标就能定位到数组值。根据维度的不同可以将数组分为一维数组、二维数组、三维数组等等,以此类推。一维数组创建一个长度为10的数组,如果将11...原创 2019-05-29 11:21:14 · 2609 阅读 · 0 评论 -
数据结构:B+树
目录B+树B+树特点插入操作查找操作遍历操作B+树B+树是B树的一种变体,也属于平衡多路查找树,大体结构与B树相同,包含根节点、内部节点和叶子节点。多用于数据库和操作系统的文件系统中,由于B+树内部节点不保存数据,所以能在内存中存放更多索引,增加缓存命中率。另外因为叶子节点相连遍历操作很方便,而且数据也具有顺序性,便于区间查找。B+树特点B+树可以定义一个...原创 2019-05-29 14:57:34 · 293 阅读 · 1 评论 -
数据结构:B树
目录B树B树特点插入查找B树B树即平衡查找树,一般理解为平衡多路查找树,也称为B-树、B_树。是一种自平衡树状数据结构,能对存储的数据进行O(log n)的时间复杂度进行查找、插入和删除。B树一般较多用在存储系统上,比如数据库或文件系统。B树特点B树可以定义一个m值作为预定范围,即m路(阶)B树。 每个节点最多有m个孩子。 每个节点至少有ceil(m/2)...原创 2019-05-29 14:53:10 · 1237 阅读 · 0 评论 -
数据结构:红黑树
目录红黑树红黑树性质旋转和变色插入操作查找红黑树红黑(Red-black)树是一种自平衡二叉查找树,1972年由Rudolf Bayer发明,它与AVL树类似,都在插入和删除操作时能通过旋转操作保持二叉查找树的平衡,以便能获得高效的查找性能。它可以在 O(logn)时间内做查找,插入和删除等操作。红黑树是2-3-4树的一种等同,但有些红黑树设定只能...原创 2019-05-29 14:48:20 · 329 阅读 · 0 评论 -
数据结构:2-3树
目录2-3树2-3树特点插入操作查找2-3树2-3树,是最简单的B-树,其中2、3主要体现在每个非叶子节点都有2个或3个子节点,B-树即是平衡树,平衡树是为了解决不平衡树查询效率问题,常见的二叉平衡书有AVL树,它虽然提高了查询效率,但是插入操作效率不高,因为它需要再每次插入节点后维护树的平衡,而为了解决查询效率同时有兼顾插入效率,于是提出了2-3树。...原创 2019-05-29 14:43:28 · 571 阅读 · 0 评论 -
数据结构:AVL树(平衡二叉树)
目录AVL树AVL树特点二叉搜索树的平衡为什么要旋转插入方式右单旋左单旋左右双旋右左双旋插入查找删除情况二AVL树AVL树,也称平衡二叉搜索树,AVL是其发明者姓名简写。AVL树属于树的一种,而且它也是一棵二叉搜索树,不同的是他通过一定机制能保证二叉搜索树的平衡,平衡的二叉搜索树的查询效率更高。AVL树特点AVL树是一...原创 2019-05-29 14:38:05 · 624 阅读 · 0 评论 -
数据结构:基于数组的栈
目录栈栈的实现pushpop栈栈是一种线性存储结构且运算受限的线性表,它的插入和删除运算操作被限制在表的一端,该端称为栈顶,而另外一端则称为栈底。栈中的数据以后进先出(Last In First Out 即LIFO)方式进出栈。栈的实现栈的实现方式有多种方式,主要是使用不同的结构来存储栈元素,比如使用数组、单向链表、双向列表等。这里看数组方式的实现。实...原创 2019-05-29 14:35:02 · 485 阅读 · 0 评论 -
数据结构:二叉搜索树
目录关于树树的特点二叉搜索树二叉搜索树特点插入操作-插入顺序性查询操作删除操作关于树对于树的数据结构大家都了解,只是树的类型有很多,所以可能又会对树产生一种陌生感。树其实就是由有限n(n>=1)个节点组成的一个具有层次关系的集合,它看起来像一棵倒挂的树,所以称之为“树”。树的特点每个节点有若干个或0个子节点; 根节点没有父节点; 每一...原创 2019-05-29 14:29:28 · 2314 阅读 · 0 评论 -
数据结构:双向链表
目录双向链表双链表特点双链表创建插入链尾创建迭代器插入节点删除节点双向循环链表双向链表双向链表属于链表的一种,也叫双链表双向即是说它的链接方向是双向的,它由若干个节点组成,每个节点都包含下一个节点和上一个节点的指针,所以从双向链表的任意节点开始,都能很方便访问他的前驱结点和后继节点。双链表特点创建双链表时无需指定链表的长度。 比起单链表,双链...原创 2019-05-29 14:23:48 · 864 阅读 · 0 评论 -
数据结构:单向链表
目录单向链表单链表特点单链表创建创建迭代器插入节点删除节点单向链表单向链表属于链表的一种,也叫单链表,单向即是说它的链接方向是单向的,它由若干个节点组成,每个节点都包含下一个节点的指针。单链表特点创建单链表时无需指定链表的长度,这个比起数组结构更加有优势,而数组纵使实现成动态数组也是需要指定一个更大的数组长度,而且要把原来的数组元素一个个复制到新数组中...原创 2019-05-29 11:24:29 · 402 阅读 · 0 评论 -
数据结构及算法:链表相关(如何判断单链表是否存在环、找出入环点、链表相交等问题)
目录一、如何判断单链表是否存在环方法一、穷举遍历方法二、哈希表缓存方法三、快慢指针(推荐)方法四、Set集合大小变化二、如何找出有环链表的入环点?方法一、用HashSet来解决方法二、计算循环(快慢指针)情况一:多走一个环情况二、当fast比slow 多走n个环代码实现三、如果存在环,求出环上节点的个数;四、如果存在环,求出链表的长度;...原创 2019-06-27 17:03:38 · 1403 阅读 · 0 评论