數據結構之棧定義及構造函數
-
棧的定義
- 棧是一種線性數據結構,棧的特征是數據的插入和刪除只能通過一端來實現,這一端稱為“棧頂”,相應的另一端稱為“棧底”;另外其還有先進后出,后進先出的特征。
- 棧是一種高效的數據結構,因為數據只能在棧的頂端添加或者刪除,所以這樣的操作很快而且容易實現。
- 說到線性結構,得先了解一下數據的邏輯結構,數據的邏輯結構分為線性結構、集合結構、樹形結構和圖形結構,如下圖所示,棧是一種特殊的線性表,是線性結構的一種。
-
JavaScript => 定義棧結構的構造函數 (node環境)
module.exports = function Stack() {
// 初始化棧倉庫
const arr = []
// 壓棧
this.push = item => arr.push(item)
// 彈棧
this.pop = () => arr.pop()
// 返回棧頂元素
this.top = () => arr[arr.length - 1]
// 棧的大小
this.size = () => arr.length
// 棧是否為空
this.isEmpty = () => arr.length === 0
// 清空棧
this.clear = () => arr.splice(0, arr.length)
}