
数据结构
梆子大鼓
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
玩转数据结构从入门到进阶(四 集合set与映射map堆与优先队列,线段树:)
项目源码:https://gitee.com/renqiqi/shujvjiegou 层序遍历:广度优先遍历 使用非递归方式实现。更快的找到想要的元素,主要应用于搜索。 删除任意节点:删除节点后,找到该节点的右子树中最小值,让他顶替该节点的位置,并在原来的位置上删除这个最 小值 用链表来实现set集合复杂度是O(n),而用二分搜索树来实现Set,复杂度是O(logn):其实是O(h),h就是树的高...原创 2019-04-16 15:34:09 · 563 阅读 · 0 评论 -
玩转数据结构从入门到进阶(一)数组、栈和队列
数组 O(n)描述的是渐进时间复杂度,描述当n趋近于无穷的情况下的时间复杂度。 防止复杂度振荡:resize方法是复杂度O(n)的,当数组大小处于满容量状态时,频繁调用添加和删除操作 会频繁调用resize方法,为了避免这种情况,使用lazy的方法,当数组中实际元素为数组容量的 四份之一时,再进行缩小容量的操作。缩小为数组大小的二分之一。 栈 栈相当于数组的子集。只不过入和出只能从一端进行操作,称...原创 2019-04-16 15:34:33 · 803 阅读 · 1 评论 -
玩转数据结构从入门到进阶笔记(二 链表)
链表Linked List: 上一篇中的动态数组,栈和两种队列底层依然依托于静态数组,其中动态是对于该数据结构的使用者来说的,依靠 resize方法解决动态扩容和缩容的问题。而链表是真正的动态数据结构,同时也是最简单的数据结构,是其他复杂数 据结构的基础。 它的数据储存在节点中,称之为Node,Node中储存了一个保存的数据和指向下一个节点的Node类型的引用next。下一 个节点没有数据则指向n...原创 2019-04-16 15:34:23 · 592 阅读 · 0 评论 -
玩转数据结构从入门到进阶(五 平衡二叉树,2-3树,红黑树)
平衡二叉树: 定义:对于平衡二叉树来说,任意一个节点的子树的高度差不超过一。条件比完全二叉树和满二叉树更为宽松。叶子 节点的高度就是1.计算平衡因子。左子树减去右子树高度。 当插入元素在不平衡节点的左侧的左侧的时候,需要进行右旋转。反之,当插入元素在不平衡节点的右侧的右侧的时 候,需要进行左旋转。 当插入元素在不平衡节点的左侧的右侧的时候,先将不平衡节点的左侧节点进行左旋转,转化为上面的那种情况。...原创 2019-04-16 15:33:58 · 636 阅读 · 0 评论 -
玩转数据结构从入门到进阶(三 链表、二叉树与递归)
链表与递归: 项目源码:https://gitee.com/renqiqi/shujvjiegou 递归:将原来的问题转化为更小的同一问题。 链表具有天然的递归性质,可以看做链表头挂着一个更短的链表,,, 解决递归问题时,应当注意函数的语义,才能更加容易的转换为更加简单一部的问题。比如删除链表中元素 removeElement(ListNode head,int val)这个函数就是删除以head...原创 2019-04-16 15:34:16 · 319 阅读 · 0 评论