使用兩個棧模擬佇列的操作

2021-07-04 16:42:30 字數 743 閱讀 1894

棧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...