function NodeList(key) { this.key = key this.prev = null}class LinkedList { constructor() { this.head = null } insert(node) {
实现起来比较简单,如下demofunction ListNode(key, next = null) { return { key, next }}class LinkedList { constructor() { this.head
功能时间复杂度追加O(1)索引O(1)插入O(n)删除O(n)合并O(m+n)为什么追加元素是O(1)的呢?其实数组在内存中是有一段预留空间,如下图示例预留空间其实是有限的,如果空间不足会开辟新的空间
function insert_number(A, i, x) { let p = i - 1 // P指向下一个元素 // p + 1是下一个空位 while ( p >= 0 && A[p] > x) { // 增加一个空