91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么使用JavaScript實現鏈表的數據結構的代碼

發布時間:2021-04-13 14:17:28 來源:億速云 閱讀:132 作者:小新 欄目:web開發

這篇文章主要介紹了怎么使用JavaScript實現鏈表的數據結構的代碼,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

鏈表(Linked list)是一種常見的基礎數據結構,是一種線性表,但是并不會按線性的順序存儲數據,而是在每一個節點里存到下一個節點的指針(Pointer)   — 維基百科

上面是維基百科對 鏈表 的解讀。下面我們用 JavaScript 代碼對鏈表的數據結構進行實現

實現Node類表示節點

/**
 * Node 類用來表示節點
 * element 用來保存節點上的數據
 * next 用來保存指向下一個節點的鏈接
 */
function Node(element) {
 this.element = element;
 this.next = null;
}
LList類提供對鏈表操作的方法
/**
 * LList 類提供了對鏈表進行操作的方法
 * 鏈表只有一個屬性,
 * 使用一個 Node 對象來保存該鏈表的頭節點。
 */
class LList {
 constructor() {
  this.head = new Node('head');
 }
 // 查找節點
 find(item) {
  let currNode = this.head;
  while(currNode.element !== item) {
   currNode = currNode.next;
  }
  return currNode;
 }
 // 查找前一個節點
 findPre(item) {
  if(item === 'head') throw new Error('now is head!');
  let currNode = this.head;
  while (currNode.next && currNode.next.element !== item) {
   currNode = currNode.next;
  }
  return currNode;
 }
 // 插入新節點
 insert(newElement, item) {
  let newNode = new Node(newElement);
  let currNode = this.find(item);
  newNode.next = currNode.next;
  currNode.next = newNode;
 }
 // 刪除一個節點
 remove(item) {
  let preNode = this.findPre(item);
  if(preNode.next !== null) {
   preNode.next = preNode.next.next;
  }
 }
 // 顯示鏈表中的元素
 display() {
  let currNode = this.head;
  while(currNode.next !== null) {
   console.log(currNode.next.element);
   currNode = currNode.next;
  }
 }
}

測試代碼

const list = new LList(); 
// LList { head: Node { element: 'head', next: null } }
list.insert('0', 'head');
list.insert('1', '0');
list.insert('2', '1');
list.insert('3', '2');
list.remove('1');
console.log(list); 
// LList { head: Node { element: 'head', next: Node { element: '0', next: [Object] } } }
console.log(list.display()); // 0 2 3
console.log(list.findPre('1')); 
// Node { element: '0', next: Node { element: '1', next: Node { element: '2', next: [Object] } } }

感謝你能夠認真閱讀完這篇文章,希望小編分享的“怎么使用JavaScript實現鏈表的數據結構的代碼”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

白山市| 星座| 怀远县| 涟水县| 昌黎县| 上杭县| 济宁市| 开江县| 湟中县| 绍兴市| 西盟| 诏安县| 阿克| 凤阳县| 九寨沟县| 鄢陵县| 观塘区| 炎陵县| 新巴尔虎左旗| 公安县| 上蔡县| 新竹县| 玛纳斯县| 隆尧县| 读书| 叶城县| 花莲市| 定日县| 汕尾市| 靖江市| 尚志市| 措勤县| 正阳县| 海原县| 封丘县| 绥芬河市| 辽宁省| 崇仁县| 涿鹿县| 综艺| 郑州市|