![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
data-structure
数据结构与算法
「已注销」
曾梦想仗剑走天涯,后来 bug 太多没去
展开
-
跳表
跳表文章目录跳表跳表概念跳表结构跳表性能跳表的高度查找时间复杂度插入时间复杂度删除时间复杂度内存消耗索引动态更新跳表概念二分查找法依赖于数组的随机访问特性,只能用数组实现跳表是基于链表实现类似于二分查找的算法查找、插入、删除各方面性能都不错的动态数据结构,甚至可以替代红黑树Redis 中的有序集合(Sorted Set)就是用跳表来实现的跳表结构对于一个有序的单链...原创 2019-11-21 10:58:42 · 702 阅读 · 0 评论 -
二叉树
树文章目录树树基本概念链表、树和图二叉树数学性质满二叉树完全二叉树平衡二叉树二叉树操作创建二叉树遍历二叉树打印二叉树统计结点数目输出叶子结点统计叶子结点数目输出高度二叉搜索树红黑树树基本概念结点: 包含一个数据元素及若干指向子树的分支结点的度:含有孩子结点的个数结点的层次:由根结点开始,根结点层次为 0树的深度:由根结点开始,根结点深度为 0树的高度:由叶子结点向根结点,取最大值...原创 2019-11-18 11:25:06 · 689 阅读 · 0 评论 -
栈
栈文章目录栈栈的理解栈的实现顺序栈链式栈栈的应用函数调用栈表达式求值括号匹配栈的理解一种操作受限的线性表结构,只允许在一端插入删除数据数组和链表可以在功能上代替栈,但是数组和链表过于灵活,暴露了太多操作接口,使用时比较不可控当一个数据集合只涉及在一端插入删除数据,且满足先进后出特性,应该首选栈这种数据结构入栈出栈的时间复杂度、空间复杂度都为 O(1)空间复杂度是指除了原本的数据...原创 2019-11-04 11:26:18 · 566 阅读 · 0 评论 -
链表
链表文章目录链表数组与链表单链表结构插入删除随机访问双向链表、循环链表链表实现 LRU 缓存如何手写链表数组与链表同为线性表存储结构数组在一段连续的空间上,链表将分散的内存块连接起来使用单链表SinglyLinkedList结构结点:存储链表的每一个内存块后继指针:每个结点除了存储数据外,还要记录下一个内存块的地址头结点:第一个结点,记录基址尾结点:最后一个结点,指...原创 2019-11-04 11:21:38 · 626 阅读 · 0 评论 -
数组
数组文章目录数组随机访问低效的插入删除为何从 0 开始编号随机访问数组是一种线性表数据结构,用一组连续的内存空间,来存储同一类型的数据线性表:数据排成线一样的结构,最多只有前和后两个方向数据、栈、队列、链表都是线性表结构堆、图、二叉树等数据之间不具有简单前后关系的结构,所以是非线性表结构随机访问在连续的地址空间存相同类型的数据。这两个限制使数组具有随机访问的特性,但是在插...原创 2019-11-04 11:20:56 · 594 阅读 · 0 评论 -
复杂度
复杂度文章目录复杂度复杂度分析时间复杂度空间复杂度最好、最坏情况时间复杂度平均时间复杂度均摊时间复杂度复杂度分析数据结构和算法的目标:快、省,即执行效率和资源消耗。“事后统计法”具有很大局限性,提前预估效率很重要。复杂度分析是学习算法的精髓和分析算法的利器。时间复杂度假设每行代码执行时间意义,所有代码的执行时间 T(n) 和每行代码的执行次数 n 成正比。T(n) = O ...原创 2019-11-04 11:10:47 · 764 阅读 · 0 评论