維基百科1.先建立節點的類。
2.再建立雙向鍊錶的類。class node
}
接下來給雙向聯表新增一些方法(一下方法都是在雙向鍊錶類裡面寫的)。class doublelinkedlist
}
/**
* * @param element 用來例項節點的資料,什麼資料型別都行.
*/let node = new node(element), current;
if (!this.length) else // current的下乙個為null的時候,退出迴圈。
current.next = node; // current.next為null退出迴圈(即已到了最後乙個節點),那麼它的next為node
node.previous = current; // 新加入的node的前乙個就是current。
}this.length++; // 長度加一,別忘咯。
}
/**
* @param element
* @param position 要插入的某個位置.
*/insertnode (element, position) else
front.next = current.previous = node; // 前乙個的next 和 當前的previous 是node。
node.previous = front; // 插入的node的前乙個為front。
node.next = current; // 插入的node的後乙個是current。
}this.length++;
console.log('insert successfully!');
} else
}
/**
* @param position
*/removenode (position) else
if (current.next)
front.next = current.next; // 前乙個的下乙個為current的下乙個。 (...繞口)
}this.length--;
console.log('remove successfully!');
} else
}
print ()
arr.map( (x, index) => console.log(`第$個節點是`, x));
迴圈鍊錶 ----(維基百科)1.單向迴圈鍊錶2.雙向迴圈鍊錶
就寫到這裡咯。你問我怎麼不實現迴圈鍊錶?這個就...你們實現吧,程式猿嘛,要多動手,多動手。
謝謝大家。
資料結構之雙鏈表
前面我們介紹了單鏈表,單鏈表的優點是沒有空間的限制,可以隨意開闢空間。但與我們這次要講的雙鏈表相比,就有點相形見絀了。因為哪怕是單鏈表,在進行查詢 插入 排序等等時都要進行線性表的遍歷,而我們往往需要的是目標節點的前乙個節點,所以經常一不小心就錯過了我們需要的節點,或者經常需要乙個當前節點的備份,以...
資料結構 雙鏈表
typedef struct nodenode 雙鏈表的根節點的bwd指標指向雙鏈表的最後乙個節點,fwd指標指向雙鏈表的第乙個節點,雙鏈表的value欄位為空 以下程式是將乙個值插入到乙個有序的雙鏈表中,如果鍊錶中已經有和該值相同的節點則不插入 include include typedef st...
資料結構 雙鏈表
目標 掌握雙鏈表的資料結構 來看看什麼是雙鏈表吧 雙鏈表與單鏈表的區別,單鏈表是單項的 而雙鏈表是有左右的 題目acwing 827 實現乙個雙鏈表,雙鏈表初始為空,支援5種操作 1 在最左側插入乙個數 2 在最右側插入乙個數 3 將第k個插入的數刪除 4 在第k個插入的數左側插入乙個數 5 在第k...