C++ 有一個(gè) deque 頭文件,用于處理堆棧和隊(duì)列的屬性。在數(shù)據(jù)結(jié)構(gòu)中,解決O(1)時(shí)間復(fù)雜度的問題,需要常數(shù)時(shí)間。通過在該程序中使用雙端隊(duì)列,我們??獲得了同時(shí)使用堆棧和隊(duì)列的優(yōu)勢。
在本文中,我們將解決隊(duì)列數(shù)據(jù)結(jié)構(gòu),以在 O(1) 時(shí)間內(nèi)獲取數(shù)字的最小值或最大值。
deque<data_type> name_of_queue;
deque - 這以雙端隊(duì)列而聞名,它訂購了與隊(duì)列等效的一組項(xiàng)目或數(shù)字。
data_type - 使用的數(shù)據(jù)類型,如 int、float 等
name_of_queue - 為隊(duì)列指定的任何名稱,如 ab、cd 等。
front()
front()是C++ STL中的預(yù)定義函數(shù),它直接引用隊(duì)列的第一個(gè)索引位置。
back()
back()是C++ STL中的預(yù)定義函數(shù),它直接引用隊(duì)列的最后一個(gè)索引位置。
push_back()
push_back() 也是一個(gè)預(yù)定義函數(shù),用于從后面插入元素。
我們將使用頭文件 'iostream' 和 'deque' 啟動(dòng)程序。
我們插入雙端隊(duì)列來處理數(shù)字的最大值或最小值。
“deque<int> dq” - 通過使用它,我們可以啟用堆棧和隊(duì)列的屬性
從 for 循環(huán)開始,我們插入 10 到 15 范圍內(nèi)的元素。然后使用名為 'push_back[i ]' 接受 'i' 作為參數(shù),使用 for 循環(huán)推送數(shù)組元素。
然后,我們使用預(yù)定義函數(shù) front() 和 back() 創(chuàng)建兩個(gè)變量來查找數(shù)字的最小值和最大值。 front() 查找第一個(gè)索引來表示最小數(shù)字,而 back() 查找最后一個(gè)索引來表示最大數(shù)字。
現(xiàn)在我們正在初始化 for 循環(huán)來迭代索引號(hào)長度,并使用該長度將最小和最大元素的比較分類為 'dq[i]'。 因此,這將找出最小和最大數(shù)。
最后,我們?cè)?b>'min_element'和'max_element'變量的幫助下打印最小和最大長度的輸出。
李>在這個(gè)程序中,我們將解決隊(duì)列數(shù)據(jù)結(jié)構(gòu)以在 O(1) 時(shí)間內(nèi)獲得最小值和最大值。
#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
我們探索了隊(duì)列數(shù)據(jù)結(jié)構(gòu)的概念來查找最小或最大元素。我們了解了 front() 和 back() 如何用于查找元素的最小值和最大值,還了解了如何將回推添加到索引元素的末尾。通過使用雙端隊(duì)列,我們??可以以 O(1) 的時(shí)間復(fù)雜度處理問題。
以上就是設(shè)計(jì)一個(gè)隊(duì)列數(shù)據(jù)結(jié)構(gòu),在O(1)時(shí)間內(nèi)獲取最小或最大值的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!
每個(gè)人都需要一臺(tái)速度更快、更穩(wěn)定的 PC。隨著時(shí)間的推移,垃圾文件、舊注冊(cè)表數(shù)據(jù)和不必要的后臺(tái)進(jìn)程會(huì)占用資源并降低性能。幸運(yùn)的是,許多工具可以讓 Windows 保持平穩(wěn)運(yùn)行。
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號(hào)
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)