棧a與棧b模擬佇列q,a為插入棧,b為彈出棧,即a提供入佇列功能,b提供出佇列功能。實現的方法有獲得佇列元素大小,判空,獲得隊頭元素
入佇列:入棧a
出佇列:棧b不為空,直接彈出棧b資料
棧b為空,則彈出棧a的資料,studylinklist.h放入棧b中,再彈出棧b的資料
#include #include using namespace std;template//類模版
class queuebydobulestack
;template size_t queuebydobulestack::size()
template bool queuebydobulestack::empty()
template void queuebydobulestack::push(t t)
//若棧s2為空,則彈出棧s1的資料,放入棧s2中,再彈出棧s2的資料
//若s2不為空,則直接彈出s2的資料
template void queuebydobulestack::pop()
} s2.pop();
}template t queuebydobulestack::top()
} return s2.top();
}int main()
printf("%d\n",q.size()); //佇列元素個數
while(!q.empty())
{ cout<
7 兩個棧模擬佇列,兩個佇列模擬棧
利用兩個棧模擬佇列 stack1,stack2 首先向stack1當中放入資料,如果需要輸出資料,從stack2中delete資料,如果stack2為空,就把stack1中資料匯入stack2 include static.h include include templateclass cquue ...
用兩個棧模擬佇列操作
棧是先進後出,佇列是先進先出操作,用兩個棧可以實現佇列操作。先把資料壓入其中乙個棧,棧頂元素最後進入,然後在把棧裡元素壓入另外乙個棧,則原來棧頂元素變為棧底元素,原來棧底元素變為棧頂元素,然後對第二個棧彈出操作,則彈出的就是最先進入第乙個棧的元素了,這就實現了佇列操作,先進先出。include us...
兩個棧模擬佇列
演算法導論上的課後題 兩個棧模擬佇列 這個原來做過 一般是這樣 我看網上大概都是這種解法 原來棧空 a b null null 1,2,3入站的時候入a a b 3 null 2 null 1 null 出戰的時候先進b 然後pop b 在調過來進a a b null 1 null 2 null 3...