js数据结构 -- 基础
基础
这本书前面几章太基础了,没啥好记的,就是很简单的介绍了 js 的基础语法。
栈
栈就是个后进先出的模型呗。这个模型完全可以通过数组来构建的。这里想记录的是使用数组构建的栈来写个十进制转二进制的小函数。
function transfer(input, NUM) {
var res = [];
var result = "";
while (input > 0) {
var rem = input % NUM;
input = Math.floor(input / NUM);
res.push(rem);
}
while (res.length != 0) {
result += res.pop().toString();
}
return result;
}
其实蛮简单的。
队列
其实与栈相反,就是先来先服务呗,使用 push 和 shift 方法使用数组来模拟,还是蛮容易的。
优先队列
就是重写了 enqueue 方法(其实就是 push 呗),在这个方法里面加入了权限的比较就是优先队列的写法了。
循环队列
其实循环队列就是循环起来就是 push 进自己刚 shift 的值,这样子来进行循环而已。
链表
链表意味着我们可以任意的添加或移除项。但是如果想要访问链表中的某个元素,必须从起点开始迭代列表直到找到。
双向列表
很简单,就是每一项都拥有前后的元素
循环列表
就是很简单的,最后一个的 next 接到了列表的第一个
集合
集合是一组无序且唯一
的项组成的。这个用 js 实现,按照 ES6 的话,其实就是一个对象。{1:1,2:2,3:3}
正好使用了对象属性的唯一性。
但是真的 ES6 的集合是什么类型都可以加入的,而且 NaN 在集合中会被认为是相等的。
字典和散列表
字典其实就是 Map,存键值对的。
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 981909093@qq.com
推荐文章
文章标题:js数据结构 -- 基础
文章字数:451
本文作者:泽鹿
发布时间:2019-08-28, 16:45:23
最后更新:2019-08-28, 19:04:07
原始链接:http://panyifei.github.io/2019/08/28/读书笔记/学习Javascript数据结构与算法/基础/版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。