陣列的大小是固定的,從陣列的開頭或中間插入或刪除專案的成本很高(其他元素需要移動); 鍊表在新增或刪除元素時不需要移動其他元素。 鍊表儲存乙個有序的元素集合,這些元素在記憶體中不連續放置,每個元素都由乙個儲存自身的節點和對下乙個節點元素的引用組成; 陣列連續放置在記憶體中。 陣列可以直接訪問任意位置的元素,陣列元素的訪問時間複雜度為o(1);鍊表需要從頭(header)遍歷列表,直到找到所需的元素,鍊表元素的訪問時間複雜度為o(n)。append(item):在列表末尾新增乙個新元素insert (position,item):將元素插入到 listRemove(item):從鏈結列表中刪除元素indexof(item):返回鍊表中元素的索引Removeat(position):從鍊表中指定位置刪除元素 isempty(): 如果鍊表中沒有元素,則返回 true,否則 falsesize(): 返回鍊表中的元素數tostring(): 輸出元素函式的值和索引 linklist() let head=null,length=0; this.append=function(item)else current.next=node } length++ this.insert=function(position,item)else current=current.next index++ console.log(`index of $-s`,-1) return -1 } this.removeat=function(position) }class es6linklist append(item)else current.next=node } this.length++ insert(pos,item)else{ while(index++=0 &&index=0 &&&pos 鍊表為 null true
要查詢的元素 2 位於鍊表中的位置 2
元素: 7 - 索引: 0 |元素: 1 - 索引: 1 |元素: 2 - 索引: 2 |元素: 9 - 索引: 3 |
鍊表的長度為 4
元素: 7 - 索引: 0 |元素: 1 - 索引: 1 |元素: 9 - 索引: 2 |
鍊表的長度為 2
鍊表是否為空 false
元素:1--索引:0|元素: 9 - 索引: 1 |
您在鍊表中查詢的元素 7 的位置位不存在。