用兩個棧來模擬佇列,注意,當pop元素之後,不需要把元素重新恢復成原來的位置。寫了好久的c++,今天終於嘗試到用template來寫類了,感覺不錯。
#include #include templateclass queue
~queue(){}
// 插入元素
void push(datatype data);
// 刪除元素
void pop();
// 獲取隊首元素
datatype front();
// 是否為空
bool empty();
private:
std::stackm_stack1;
std::stackm_stack2;
};// 插入元素
templatevoid queue::push(datatype data)
// 刪除元素
templatevoid queue::pop()
} // 刪除元素
this->m_stack2.pop();
}// 獲取隊首元素
templatedatatype queue::front()
} // 返回第二棧的棧頂元素
return this->m_stack2.top();
}// 是否為空
templatebool queue::empty()
int main()
{ bool a = (false || false);
queueq;
q.push(1);
q.push(2);
q.pop();
q.push(3);
q.pop();
while(!q.empty())
{ std::cout<
7 兩個棧模擬佇列,兩個佇列模擬棧
利用兩個棧模擬佇列 stack1,stack2 首先向stack1當中放入資料,如果需要輸出資料,從stack2中delete資料,如果stack2為空,就把stack1中資料匯入stack2 include static.h include include templateclass cquue ...
兩個棧模擬佇列
演算法導論上的課後題 兩個棧模擬佇列 這個原來做過 一般是這樣 我看網上大概都是這種解法 原來棧空 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...
兩個棧模擬乙個佇列 兩個佇列模擬乙個棧
解題思路 插入操作在stack1中進行,刪除操作在stack2中進行,如果stack2為空,則將stack1中的所有元素轉移到stack2中。include include includeusing namespace std template class cqueue 建構函式 template ...