JS 資料結構 鍊錶的實現及增 刪 改 查

2021-10-25 21:13:35 字數 1457 閱讀 9065

鍊錶可以說是資料結構中經典中的經典,鍊錶實現相比於棧和佇列要複雜一些,他不僅包含自己本身,還指向了它的下乙個元素,它的原理這裡不再贅述。但有一些理解技巧: 對於乙個鍊錶,因為他不是陣列,無.length所以要手動設定長度屬性每次新增乙個元素,length++。此外還要有頭節點.

鍊錶想象成乙個火車,火車必須要有頭,並且對於每個節點都要用輔助類來例項化該節點(想象成乙個帶鍊子的車廂)

直接上**。

var

nodelist

=function()

// 初始化鍊錶

this.=

function

(element)

else

current.next=nodelistobj

}length++

}// 像固定位置插入

this

.insert

=function

(element,position)

else

pre.next=node

node.next=current

}length++}}

// 刪除某個位置的元素

this

.removeat

=function

(position)

else

pre.next=current.next

}length--

return current

}return

null

}//刪除某個給定的元素

this

.remove

=function

(element)

// 改變某個固定位置元素的值

this

.changeat

=function

(position,element)

else

current.element=element

}return current

}}//改變某個值的值

this

.change

=function

(oldelement,newelement)

//查詢某個元素的位置

this

.indexof

=function

(element)

index++

current=current.next

}return-1

}this

.isempty

=function()

this

.size

=function()

this

.gethead

=function()

}}

要注意的乙個技巧是**復用!如刪除固定位置的元素 改變固定位置的元素

資料結構 鍊錶的增刪改查

關於鍊錶的增刪改查 pragma once include include includetypedef int datatype typedef struct slistnode slistnode 初始化 void slistinit slistnode ppfirst 銷毀 void slis...

資料結構 鍊錶的增刪改查底層實現

鍊錶的底層 實現 增刪改查 實現如下 package cn.datastructures.stack public class linkedlistdemo public note e e public note public string tostring private note dummyhe...

用Java實現,資料結構 鍊錶的增刪改查

實現過程 特點 使用鍊錶結構可以克服陣列鍊錶需要預先知道資料大小的缺點,鍊錶結構可以充分利用計算機記憶體空間,實現靈活的記憶體動態管理。但是鍊錶失去了陣列隨機讀取的優點,同時鍊錶由於增加了結點的指標域,空間開銷比較大。概述 單鏈表是鍊錶中結構最簡單的。乙個單鏈表的節點 node 分為兩個部分,第乙個...