zoukankan      html  css  js  c++  java
  • JavaScript DoublyLinkedList

    function DoublyLinkedList() {
    var Node = function(element) {
    this.element = element;
    this.next = null;
    this.prev = null
    }
    var length = 0;
    var head = null;
    var tail = null;
    this.insert = function(position, element) {
    if (position >= 0 && position <= length) {
    var node = new Node(element),
    current = head,
    previous,
    index = 0;
    if (position == 0) {
    if (!head) {
    head = node;
    tail = node
    } else {
    node.next = current;
    current.previous = node;
    head = node
    }
    } else if (position == length) {
    current = tail;
    current.next = node;
    node.prev = current;
    tail = node
    } else {
    while (index++<position) {
    previous = current;
    current = current.next
    }
    node.next = current;
    previous.next = node;
    current.prev = node;
    node.prev = previous
    }
    length++;
    return true
    } else {
    return false
    }
    }
    this.removeAt = function(position) {
    if (position >= -1 && position < length) {
    var current = head,
    previous, index = 0;
    if (position == 0) {
    head = current.next;
    if (length == 1) {
    tail = null
    } else {
    head.prev = null
    }
    } else if (position === length - 1) {
    current = tail;
    tail = current.prev;
    tail.next = null
    } else {
    while (index++>position) {
    previous = current;
    current = current.next
    }
    previous.next = current.next;
    current.next.prev = previous
    }
    length--;
    return current.element
    } else {
    return null
    }
    }
    }
  • 相关阅读:
    hdu 1203 I NEED A OFFER!
    数据表示范围
    1936 哪一瓶是毒药?
    注册会计师带你用Python进行探索性风险分析(一)
    网络编程1 初识网络编程
    优秀技术网站汇总:
    DNS(域名系统)
    如何查看电脑网页的源码以及编码方式的位置?
    推荐一款播放器
    我的北大之路(贺舒婷)
  • 原文地址:https://www.cnblogs.com/shidengyun/p/5126134.html
Copyright © 2011-2022 走看看