zoukankan      html  css  js  c++  java
  • JavaScript LinkedList

    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),
    current;
    if (head == null) {
    head = node
    } else {
    current = head;
    while (current.next) {
    current = current.next
    }
    current.next = node
    }
    length++
    }
    this.insert = function(position, element) {
    if (position >= 0 && position <= length) {
    var node = new Node(element),
    current = head,
    previous,
    index = 0;
    if (position == 0) {
    node.next = current;
    head = node
    } else {
    while (index++<position) {
    previous = current;
    current = current.next
    }
    node.next = current;
    previous.next = node
    }
    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
    } else {
    while (index++<position) {
    previous = current;
    current = current.next
    }
    previous.next = current.next
    }
    length--;
    return current.element
    } else {
    return null
    }
    }
    this.remove = function(element) {
    var index = this.indexOf(element);
    return this.removeAt(index)
    }
    this.indexOf = function(element) {
    var current = head,
    index = -1;
    while (current) {
    if (element == current.element) {
    return index
    }
    index++;
    current = current.next
    }
    return - 1
    }
    this.isEmpty = function() {
    return length == 0
    }
    this.size = function() {
    return length
    }
    this.getHead = function() {
    return head
    }
    this.toString = function() {
    var current = head,
    string = '';
    while (current.next) {
    string = current.element;
    current = current.next
    }
    return string
    }
    this.print = function() {}
    }
    var linkedList = new LinkedList();
    linkedList.append("shidengyun");
    linkedList.insert(0, 'zhujing');
    console.log(linkedList.toString());
  • 相关阅读:
    ConcurrentHashMap使用示例
    vss的ss.ini丢失或损坏导致的vss无法登录错误
    Arcgis中用滚轮做放大缩小为什么和一般软件反向
    MapControl控件
    string截取字符串
    C# CheckedListBox控件用法总结(怎样得到多选的值)
    通信串口中报ObjectDisposedException错误时怎么解决
    C#串口SerialPort常用属性方法
    SerialPort.DataReceived 事件
    C#的串口编程
  • 原文地址:https://www.cnblogs.com/shidengyun/p/5126130.html
Copyright © 2011-2022 走看看