数据结构
ix35
这个作者很懒,什么都没留下…
展开
-
[数据结构]队列与队列的应用
(在阅读前,建议先了解栈的相关内容)队列和栈同为线性结构中非常重要的两种,区别在于,栈是一种“先进后出”的数据结构,而队列“先进先出”。考虑问题:您需要写一种数据结构,维护一系列数,初始为空。定义其中一端为队头,另一端为队尾,要求提供三种操作:(1)格式:111 xxx,表示在队尾端处加入一个数xxx;(O(1)O(1)O(1))(2)格式:222,表示输出队头端的数,并将其删除;(O...原创 2019-02-27 21:06:49 · 544 阅读 · 0 评论 -
[数据结构]单调栈与单调队列
可能会用到的前置知识:栈与栈的应用队列与队列的应用有时候题目中可能会出现一些需要维护单调性的内容,例如最典型的滑动窗口最值问题等。又或者需要通过几维不同的单调性同时维护,那么这时单调队列可能会很有用处,将原有的高级数据结构需用O(logn)O(\log n)O(logn)的时间复杂度才能解决的问题简化到用较为容易写的单调队列在O(n)O(n)O(n)时间复杂度内完成。有时在一些序列问题...原创 2019-02-28 22:06:33 · 224 阅读 · 0 评论 -
[数据结构]链表、邻接表
注意,本文的链表用数组来模拟实现,代码中不涉及指针。在讲解这个内容之前,先来回忆数组能够完成哪些操作:(1)任意访问一个元素,时间复杂度为O(1)O(1)O(1);(2)删除一个元素,要移动此后的所有元素,时间复杂度为O(n)O(n)O(n);(3)在任意位置之后增添一个元素,要移动此后的所有元素,时间复杂度为O(n)O(n)O(n);但如果我们的问题并不需要访问任意元素,只需要进行删除...原创 2019-03-01 18:51:23 · 362 阅读 · 0 评论 -
[数据结构]栈与栈的应用
栈是非常重要的线性数据结构之一,其中一端为栈顶,加入元素和取出元素全部在栈顶端进行,满足FILO(First In Last Out,先进后出)的性质。考虑这样一个问题:您需要写一种数据结构,维护一系列数,初始为空。定义其中一端为顶,另一端为底,要求提供三种操作:(1)格式:111 xxx,表示在最顶端处加入一个数xxx;(O(1)O(1)O(1))(2)格式:222,表示输出最顶端的数...原创 2019-02-26 21:12:45 · 322 阅读 · 0 评论