美文网首页
JS简单实现一个链表

JS简单实现一个链表

作者: ashyanSpada | 来源:发表于2021-05-04 20:37 被阅读0次

JS简单实现一个链表

class Node {
    constructor (val, front, back) {
        this.val = val;
        this.front = front;
        this.back = back;
    }
}

class List {
    constructor () {
        this.head = null;
        this.tail = null;
        this.length = 0;
    }
    addToBack (el) {
        if (this.tail) {
            this.tail.back = el;
            el.front = this.tail;
            this.tail = el;
        } else {
            this.head = el;
            this.back = el;
            this.length += 1;
        }
    }
    addToFront (el) {
        if (this.head) {
            el.back = this.head;
            this.head.front = el;
            this.head = el;
        } else {
            this.head = el;
            this.back = el;
            this.length += 1;
        }
    }
    moveToFront (el) {
        if (this.head === el) {
            return
        } else {
            this.remove(el);
            this.addToFront(el);
        }
    }
    moveToBack (el) {
        if (this.tail === el) {
            return
        } else {
            this.remove(el);
            this.addToBack(el);
        }
    }
    remove (el) {
        if (this.head === el && this.tail === el) {
            this.head = null;
            this.tail = null;
        } else if (this.head === el) {
            this.head = el.back;
            el.back.front = null;
            el.back = null;
        } else if (this.back === el) {
            this.tail = el.front;
            el.front.back = null;
            el.front = null;
        } else {
            const front = el.front;
            const back = el.back;
            front.back = back;
            back.front = front;
            el.front = null;
            el.back = null;
        }
    }
}

相关文章

  • JS简单实现一个链表

    JS简单实现一个链表

  • 前端校招准备系列--js实现链表的基本操作

    自己总结了一下链表的基本操作的实现,文末还有几道简单的算法题可供练习! 前端校招准备系列--使用js实现链表的操作...

  • 链表 --js实现

    1.链表的概念 列表存储的是有序元素集合,不同于数组,链表的中的元素在内存中并不是连续放置的。每个元素是由一个存储...

  • js实现链表

    function LinkedList() { var Node = function (element)...

  • js 链表实现

    一、节点的实现 我都知道链表就是用有向线段把多个节点按顺序串起来,要实现链表首先要实现节点,而每一个节点,有一个自...

  • js实现链表

    设计一个基于对象的链表 我们需要设计两个类,Node类用来表示结点,LinkedList类提供插入结点、删除结点、...

  • JS 实现链表

    Node 为创建节点的构造函数;LinkedList 为链表操作函数的构造函数。对链表的操作包括:插入节点、移除节...

  • markdown js实现链表list

    先学会js语法,再用js写好链表的代码可以实现链表的插入删除等操作,然后将写好的代码改为js格式的文件放入node...

  • 2018-03-26

    数据结构:单向链表 #include#include//实现一个简单的单向链表 (不带头节点的链表,只有一个头指针...

  • Swift队列遇到的一个栈溢出的问题

    最近项目需要用到链表,随手写了一个简单的实现,未想到遇到了一个奇怪的栈溢出的问题。 先上链表的实现,非常的简单,会...

网友评论

      本文标题:JS简单实现一个链表

      本文链接:https://www.haomeiwen.com/subject/krlhdltx.html