JavaScript 堆疊和佇列

Ammar Ali 2023年10月12日
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() 函式刪除第一個元素時,它必須將陣列中的每個元素向後移動一步。所以,如果你想實現一個包含大量元素的佇列,那麼你應該使用連結串列來實現一個佇列。

作者: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

相關文章 - JavaScript Array