C 有一個 deque 頭文件,用於處理堆疊和佇列的屬性。在資料結構中,解決O(1)時間複雜度的問題,需要常數時間。透過在該程式中使用雙端佇列,我們獲得了同時使用堆疊和佇列的優勢。
在本文中,我們將解決佇列資料結構,以在 O(1) 時間內取得數字的最小值或最大值。
deque<data_type> name_of_queue;
deque - 這以雙端隊列而聞名,它訂購了與隊列等效的一組項目或數字。
data_type - 使用的資料類型,如 int、float 等
name_of_queue - 為佇列指定的任何名稱,如 ab、cd 等。
front()
front()是C STL中的預定義函數,它直接引用隊列的第一個索引位置。
back()
back()是C STL中的預定義函數,它直接引用佇列的最後一個索引位置。
push_back()
push_back() 也是預先定義函數,用來從後面插入元素。
我們將使用頭檔 'iostream' 和 'deque' 啟動程式。
我們插入雙端佇列來處理數字的最大值或最小值。
「deque
從 for 迴圈開始,我們插入 10 到 15 範圍內的元素。 接著使用名為 'push_back[i ]' 接受 'i' 作為參數,使用 for 迴圈推送陣列元素。
然後,我們使用預定義函數 front() 和 back() 建立兩個變數來尋找數字的最小值和最大值。 front() 尋找第一個索引來表示最小數字,而 back() 尋找最後一個索引來表示最大數字。
現在我們正在初始化 for 迴圈來迭代索引號長度,並使用該長度將最小和最大元素的比較分類為 'dq[i]'。 因此,這將找出最小和最大數。
最後,我們在'min_element'和'max_element'變數的幫助下列印最小和最大長度的輸出。
李>在這個程式中,我們將解決佇列資料結構以在 O(1) 時間內獲得最小值和最大值。
#include <iostream> #include <deque> using namespace std; int main() { deque<int> dq; // double ended queue // insert elements into the deque using a loop for(int i = 10; i <= 15; i++) { dq.push_back(i); } // find the minimum and maximum elements int min_element = dq.front(); int max_element = dq.back(); for(int i = 1; i < dq.size(); i++) { if(dq[i] < min_element) { min_element = dq[i]; } if(dq[i] > max_element) { max_element = dq[i]; } } //Print the minimum and maximum elements cout << "Minimum element: " << min_element << endl; cout << "Maximum element: " << max_element << endl; return 0; }
Minimum element: 10 Maximum element: 15
我們探索了佇列資料結構的概念來尋找最小或最大元素。我們了解了 front() 和 back() 如何用於尋找元素的最小值和最大值,也了解如何將回推加入索引元素的末尾。透過使用雙端佇列,我們可以以 O(1) 的時間複雜度處理問題。
以上是設計一個佇列資料結構,在O(1)時間內取得最小或最大值的詳細內容。更多資訊請關注PHP中文網其他相關文章!