JavaScript 堆疊和佇列
本教程將討論在 JavaScript 中使用陣列實現堆疊和佇列。
在 JavaScript 中使用陣列實現堆疊和佇列
我們可以在 JavaScript 中使用陣列和連結串列來實現堆疊和佇列。堆疊遵循先進後出原則,這意味著第一個新增到堆疊的元素將在刪除所有其他元素後刪除,反之亦然。佇列按照先進先出的原則工作,這意味著第一個新增到堆疊的元素將首先被刪除,反之亦然。與連結串列相比,使用陣列實現堆疊和佇列更容易,因為我們可以使用許多預定義的函式。例如,要實現堆疊,我們可以使用 push()
和 pop()
函式。push()
函式用於在堆疊或陣列的末尾新增一個元素,而 pop()
函式用於從堆疊或陣列的末尾刪除一個元素。讓我們使用 JavaScript 中的陣列來實現一個堆疊。請參考下面的程式碼。
var MyStack = [];
MyStack.push(1);
MyStack.push(9);
console.log('Stack before pop', MyStack);
MyStack.pop();
console.log('Stack after pop', MyStack);
輸出:
Stack before pop (2) [1, 9]
Stack after pop [1]
在上面的程式碼中,我們使用 push()
函式將兩個值 1 和 9 新增到堆疊中,你可以在輸出中看到這兩個值儲存在堆疊中。我們使用 pop()
函式從堆疊中刪除最後一個元素,你可以在輸出中看到最後一個元素已從堆疊中刪除。你可以使用 length
函式檢查堆疊的大小。陣列的堆疊實現效能非常高,因為我們只是在陣列末尾新增一個元素,同時從末尾刪除它。你也可以使用連結串列實現堆疊,但你找不到任何預構建函式來幫助你。現在,讓我們使用陣列、push()
和 shift()
函式來實現一個佇列。push()
函式用於在佇列或陣列的末尾新增一個元素,而 shift()
函式用於從堆疊或陣列的開頭刪除一個元素。請參考下面的程式碼。
var MyQueue = [];
MyQueue.push(1);
MyQueue.push(9);
console.log('Queue before shift', MyQueue);
MyQueue.shift();
console.log('Queue after shift', MyQueue);
輸出:
Queue before shift (2) [1, 9]
Queue after shift [9]
在上面的程式碼中,我們使用 push()
函式將兩個值 1 和 9 新增到佇列中,你可以在輸出中看到這兩個值儲存在佇列中。我們使用 shift()
函式從佇列中刪除第一個元素,你可以在輸出中看到第一個元素已從佇列中刪除。你可以使用 length
函式檢查佇列的大小。使用陣列構建佇列的效能非常低,因為當 shift()
函式刪除第一個元素時,它必須將陣列中的每個元素向後移動一步。所以,如果你想實現一個包含大量元素的佇列,那麼你應該使用連結串列來實現一個佇列。