兩個棧來模擬佇列

2021-06-19 05:36:04 字數 900 閱讀 1619

用兩個棧來模擬佇列,注意,當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 ...