数据结构
Novice-XiaoSong
这个作者很懒,什么都没留下…
展开
-
数据结构 单调栈
一、什么是单调栈单调栈是一种特殊的栈,栈内元素满足从栈顶到栈底单调有序单调递增栈:元素从栈顶到栈底单调递增单调递减栈:元素从栈顶到栈底单调递减1. 单调栈示例从数组 [5, 4, 2, 3, 6, 7, 1] 构建单调栈单调递增栈单调递增栈:栈顶到栈底元素单调递增(栈顶为栈内最小元素)栈为空或者当前元素比栈顶元素小:当前元素直接入栈当前元素比栈顶元素大:栈顶元素出栈,当前元素重新入栈步骤单调栈内容描述0[ ]栈初始化1[ 5 ]5入原创 2020-12-02 16:35:10 · 232 阅读 · 0 评论 -
数据结构 使用2个栈实现一个队列
function StackQueue(){ // 数组模拟栈,只能用push, pop方法 let stack1 = []; // 用于入队 let stack2 = []; // 用于出队 this.size = 0; this.push= function(_item){ stack1.push(_item); this.size++; } this.pop = function(){ if(stack2.length <= 0){ // 需要构建stack2原创 2020-11-18 00:27:13 · 221 阅读 · 0 评论 -
数据结构 实现堆
堆分类:最大堆、最小堆堆别名:优先队列堆应用:求topK,堆排序堆模板function Heap(_arr, _compareFunc){ // 私有属性 let heap = []; // 对象公有属性 this.size = 0; // 私有方法 // 计算左、右、父节点索引 let left = () => {}; let right = () => {}; let parent = () => {}; // 堆的shiftU.原创 2020-11-03 11:55:27 · 149 阅读 · 0 评论