摘要:鏈表實現設計一個基于對象的鏈表我們設計的鏈表包含兩個類。我們使用一個構造函數來創建節點該構造函數設置了這兩個屬性的值類類提供了對鏈表進行操作的方法。該類的功能包括插入刪除節點在列表中查找給定的值。
鏈表實現
設計一個基于對象的鏈表 我們設計的鏈表包含兩個類。
Node 類用來表示節點
LinkedList 類提供了插入節點、刪除節點、顯示列表元素的方法,以及其他一些輔助方法。
Node類Node 類包含兩個屬性:element 用來保存節點上的數據,next 用來保存指向下一個節點的
鏈接。我們使用一個構造函數來創建節點,該構造函數設置了這兩個屬性的值:
function Node(element) { this.element = element; this.next = null; }LinkedList類
LList 類提供了對鏈表進行操作的方法。該類的功能包括插入刪除節點、在列表中查找給 定的值。該類也有一個構造函數,鏈表只有一個屬性,那就是使用一個 Node 對象來保存該 鏈表的頭節點。
該類的構造函數如下所示:
function LList() { this.head = new Node("head"); this.find = find; this.insert = insert; this.remove = remove; this.display = display; }代碼歸納
function Node(element) { this.element = element; this.next = null; } function LList() { this.head = new Node("head"); this.find = find; this.insert = insert; this.display = display; this.findPrevious = findPrevious; this.remove = remove; } function remove(item) { var prevNode = this.findPrevious(item); if (!(prevNode.next == null)) { prevNode.next = prevNode.next.next; } } function findPrevious(item) { var currNode = this.head; while (!(currNode.next == null) && (currNode.next.element != item)) { currNode = currNode.next; } return currNode; } function display() { var currNode = this.head; while (!(currNode.next == null)) { print(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 current = this.find(item); newNode.next = current.next; current.next = newNode; }后話
當然,學好前端,你還需要關注一個公眾號!——每日前端
各位兄弟姐妹,共勉!
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/79197.html
摘要:實現移除給定的元素要移除的元素返回值表示移除成功方法說明移除單向鏈表中某個位置的元素。的前端樂園原文鏈接寒假前端學習學習數據結構與算法二鏈表 本系列的第一篇文章: 學習JavaScript數據結構與算法(一),棧與隊列第二篇文章:學習JavaScript數據結構與算法(二):鏈表第三篇文章:學習JavaScript數據結構與算法(三):集合第四篇文章:學習JavaScript數據結構與...
摘要:計算機科學中最常見的兩種數據結構是單鏈表和雙鏈表。雙向鏈表雙向鏈表具有單鏈表的所有功能,并將其擴展為在鏈表中可以進行雙向遍歷。雙向鏈表的操作我們的鏈表將包括兩個構造函數和。與單鏈表不同,雙向鏈表包含對鏈表開頭和結尾節點的引用。 翻譯:瘋狂的技術宅英文:https://code.tutsplus.com/art...說明:本文翻譯自系列文章《Data Structures With Ja...
摘要:相反,雙向鏈表具有指向其前后元素的節點。另外,可以對鏈表進行排序。這個實用程序方法用于打印鏈表中的節點,僅用于調試目的。第行將更新為,這是從鏈表中彈出最后一個元素的行為。如果鏈表為空,則返回。 showImg(https://segmentfault.com/img/bVbsaI7?w=1600&h=228); 什么是鏈表 單鏈表是表示一系列節點的數據結構,其中每個節點指向鏈表中的下一...
摘要:類表示要加入鏈表的項。循環鏈表和普通鏈表之間唯一的區別在于,最后一個元素指向下一個元素的指針不是引用,而是指向第一個元素。這里就不進行代碼實現了,大家可以結合上面的單向鏈表和雙向鏈表自己實現一個循環鏈表。 一、定義 1.1 概念 前面我們學習了數組這種數據結構。數組(或者也可以稱為列表)是一種非常簡單的存儲數據序列的數據結構。在這一節,我們要學習如何實現和使用鏈表這種動態的數據結構,這...
摘要:鏈表鏈表存儲有序的元素集合,但不同于數組,鏈表中的元素在內存中并不是連續放置的。相對于傳統的數組,鏈表的一個好處在于,添加或者刪除元素的時候不需要移動其他元素。 鏈表 鏈表存儲有序的元素集合,但不同于數組,鏈表中的元素在內存中并不是連續放置的。每個元素由一個存儲元素本事的節點和一個指向下一個元素的引用組成。相對于傳統的數組,鏈表的一個好處在于,添加或者刪除元素的時候不需要移動其他元素。...
閱讀 5036·2021-07-25 21:37
閱讀 683·2019-08-30 15:53
閱讀 3350·2019-08-29 18:47
閱讀 687·2019-08-29 15:39
閱讀 2130·2019-08-29 13:12
閱讀 1798·2019-08-29 12:43
閱讀 2978·2019-08-26 11:52
閱讀 1890·2019-08-26 10:15