美文网首页
js实现链表

js实现链表

作者: 会飞的喵呜 | 来源:发表于2018-10-24 21:29 被阅读0次

function LinkedList() {

        var Node = function (element) {        //新元素构造

            this.element = element;

            this.next = null;

        };

        var length = 0;

        var head = null;

        this.append = function (element) {

            var node = new Node(element);        //构造新的元素节点

            var current;

            if (head === null) {             //头节点为空时  当前结点作为头节点

                head = node;

            } else {

                current = head;

                while (current.next) {          //遍历,直到节点的next为null时停止循环,当前节点为尾节点

                    current = current.next;

                }

                current.next = node;            //将尾节点指向新的元素,新元素作为尾节点

            }         

            length++;                    //更新链表长度

        };

        this.removeAt = function (position) {

            if (position > -1 && position < length) {

                var current = head;

                var index = 0;

                var previous;

                if (position == 0) {

                    head = current.next;

                } else {

                    while (index++ < position) {

                        previous = current;

                        current = current.next;

                    }

                    previous.next = current.next;

                }

                length--;

                return current.element;

            } else {

                return null;

            }

        };

        this.insert = function (position, element) {

            if (position > -1 && position <= length) {        //校验边界

                var node = new Node(element);

                current = head;

                var index = 0;

                var previous;

                if (position == 0) {                    //作为头节点,将新节点的next指向原有的头节点。

                    node.next = current;

                    head = node;                        //新节点赋值给头节点

                } else {

                    while (index++ < position) {

                        previous = current;

                        current = current.next;

                    }                                //遍历结束得到当前position所在的current节点,和上一个节点

                    previous.next = node;                    //上一个节点的next指向新节点  新节点指向当前结点,可以参照上图来看

                    node.next = current;

                }

                length++;

                return true;

            } else {

                return false;

            }

        };

        this.toString = function () {

            var current = head;

            var string = '';

            while (current) {

                string += ',' + current.element;

                current = current.next;

            }

            return string;

        };

        this.indexOf = function (element) {

            var current = head;

            var index = -1;

            while (current) {

                if (element === current.element) {            //从头节点开始遍历

                    return index;

                }

                index++;

                current = current.next;

            }

            return -1;

        };

        this.getLength = function () {

            return length;

        }

    }

转自蜗牛-博客园https://www.cnblogs.com/tdws/p/6033209.html

相关文章

  • 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...

  • 链表的JS实现

    参考链接:栈的JS实现

  • js单链表实现

    定义 ​ 链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的...

  • js实现链表结构

    链表 React源码中使用了链表的结构来存储,今天使用js实现一下什么是链表?绿皮火车车箱,类型地下党,只知上级下...

网友评论

      本文标题:js实现链表

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