数组的大小是固定的,从数组的开头或中间插入或删除项目的成本很高(其他元素需要移动); 链表在添加或删除元素时不需要移动其他元素。 链表存储一个有序的元素集合,这些元素在内存中不连续放置,每个元素都由一个存储自身的节点和对下一个节点元素的引用组成; 数组连续放置在内存中。 数组可以直接访问任意位置的元素,数组元素的访问时间复杂度为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 的位置位不存在。