js数据结构 -- 基础

  1. 基础
    1. 队列
      1. 优先队列
      2. 循环队列
    2. 链表
      1. 双向列表
      2. 循环列表
    3. 集合
    4. 字典和散列表

基础

这本书前面几章太基础了,没啥好记的,就是很简单的介绍了 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" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏