数据结构
关润开
这个作者很懒,什么都没留下…
展开
-
JS数据结构------ 快速排序 拆解
快速排序的平均效率是O(N * logN).手撕鬼子开始~1. 封装添加元素方法ArrayList.prototype.insert=function(item){ this.array.push(item) }2. 封装交换位置方法 ArrayList.prototype.swap=function(m,n){ var temp = this.array[m] this.array[m]=this.array[n] this.原创 2021-04-10 23:12:21 · 147 阅读 · 0 评论 -
JS数据结构与算法---- 替换字符串的空格
转载自 力扣 剑指Offer 第五题思路整理: 大致方法: 双指针 此想法来自于JS题解点赞量最高的大佬 膜拜大佬~ 首先我们要了解 英文的空格符 占了一个字符单位 中文的空格符 占了两个字符单位 此题 为英文空格符 题中 将空格替换成 '%20'占了三个字符单位 本题运用双指针 需要比较原字符串长度 和 新占位字符串长度的关系 空格 占 1单位 %20 占3单位 我们记录下原字符串 中空格的数量 得出关系 newLength=ol.原创 2021-04-03 16:48:19 · 323 阅读 · 0 评论 -
JS数据结构---单向列表 难点添加insert操作封装解析
情况1:添加位置为0时此时链表的指向可直接指向新添加的节点情况2:position位置大于1时此时定义两个变量Current,Previous为保存原来的位置遍历每个节点 先将previous记录为使得current指向所需操作位置的节点,遍历结束后,将要添加的节点的NEXT指向current,Previous的NEXT 指向添加的节点function LinkedList(){ function node(data,next){ this.data=data, .原创 2021-02-24 15:01:35 · 244 阅读 · 0 评论 -
JS数据结构---队列操作经典面试题 击鼓传花方法实现
队列操作面试题中最为经典的则是击鼓传花问题思路分析:将五个人依次放入队列内 设定每次数三人 将其从队列中删除第三个人之前的人 先从队列中删除 然后在重新添加到队列中循环 直到队列中只剩一个人代码实现:function PassGame(nameList,num){//1-创建一个队列结构var queue=new Queue()//2-将队员名字压入队列中for(var i=0;i<nameList.length;i++){ queue.enqueue(nameLi原创 2021-02-18 13:28:39 · 295 阅读 · 0 评论 -
JS数据结构---队列操作封装
队列内元素进出的规则 是 先进先出 FIFO(first in first out)代码如下//封装队列操作function Queue() { this.items=[] //1.将元素压入队列中操作 Queue.prototype.enqueue = function (element) { this.items.push(element) } //2.将最先进来的元素从队列中删除 跟pop相反 Queue.proto原创 2021-02-18 13:20:05 · 148 阅读 · 0 评论 -
JS数据结构---栈内操作 处理十进制转二进制代码
计算十进制转换为二进制的过程可以当成把每个计算后取余的数字压入栈内的操作具体实现过程如下// 十进制转二进制代码function dec2bin(decNumber){ //定义栈var stack=new Stack() //将数字压入栈内while(decNumber>0){ // 1- 获取余数 将其压入栈内 stack.push(decNumber%2) // 2- 获取整除后的结果 作为下一次取余的数字 dec.原创 2021-02-17 20:53:35 · 272 阅读 · 0 评论 -
JS数据结构---栈结构基础面试题(进栈出栈问题)
首先我们了解一下 栈结构 出栈 进栈 原则先进后出答案 C本题考查 栈结构原则 — 先进后出A选项5出栈 先 栈底6-5栈顶 后 栈底 64出栈 先 栈底6-4栈顶 后 栈底 63出栈 先 栈底6-3栈顶 后 栈底 66出栈 先 栈底6 后 栈底 null1出栈 先 栈底2-1栈顶 后 栈底22出栈B选项 4 5 3 2 1 64出栈 先 栈底6-5-4栈顶 后 栈底 6-5栈顶5出栈 先 栈底6-5栈顶原创 2021-02-16 13:19:21 · 656 阅读 · 0 评论 -
JS数据结构---栈结构操作的封装
介绍栈结构操作的一些封装1- 创建栈类 定义属性// Method:和某一个对象实例有关系的 是方法// Function: 函数 / /封装栈类function Stack(){ / /栈中属性 this.items=[]} / / 栈的使用 var s = new Stack2. 对操作进行封装//封装栈类function Stack(){ //栈 中的一些属性 this.items=[] //栈内原创 2021-02-16 20:01:10 · 178 阅读 · 1 评论