1. 程式人生 > 程式設計 >JavaScript 連結串列定義與使用方法示例

JavaScript 連結串列定義與使用方法示例

本文例項講述了JavaScript 連結串列定義與使用方法。分享給大家供大家參考,具體如下:

連結串列

一個 連結串列 是資料元素的線性集合,元素的線性順序不是由它們在記憶體中的物理位置給出的。 相反,每個元素指向下一個元素。它是由一組節點組成的資料結構,這些節點一起,表示序列。

連結串列的一個缺點是訪問時間是線性的(而且難以管道化)。

class Node {
 constructor(val) {
  this.val = val;
  this.next = null;
 }
}

顯示連結串列

function display () {
  var currNode = this.head;
  while ( !(currNode.next == null) ){
    console.log( currNode.next.element );
    currNode = currNode.next;
  }
}

查詢

function find ( item ) {
  var currNode = this.head;
  while ( currNode.element != item ){
    currNode = currNode.next;
  }
  return currNode;
}

插入

function insert ( newElement,item ) {
  var newNode = new Node( newElement );
  var currNode = this.find( item );
  newNode.next = currNode.next;
  currNode.next = newNode;
}

刪除

function findPrev( item ) {
  var currNode = this.head;
  while ( !( currNode.next == null) && ( currNode.next.element != item )){
    currNode = currNode.next;
  }
  return currNode;
}

function remove ( item ) {
  var prevNode = this.findPrev( item );
  if( !( prevNode.next == null ) ){
    prevNode.next = prevNode.next.next;
  }
}

感興趣的朋友可以使用線上HTML/CSS/JavaScript程式碼執行工具:http://tools.jb51.net/code/HtmlJsRun測試上述程式碼執行效果。

更多關於JavaScript相關內容感興趣的讀者可檢視本站專題:《JavaScript數學運算用法總結》、《JavaScript資料結構與演算法技巧總結》、《JavaScript陣列操作技巧總結》、《JavaScript排序演算法總結》、《JavaScript遍歷演算法與技巧總結》、《JavaScript查詢演算法技巧總結》及《JavaScript錯誤與除錯技巧總結》

希望本文所述對大家JavaScript程式設計有所幫助。