用兩個棧來實現一個隊列,完成隊列的Push和Pop操作。 隊列中的元素為int類型。
思路: 先將所有元素都壓入stack1中 判斷stack2是否為空,如果為空,將stack1中元素依次出棧,放入stack2中,如果不為空,直接先對stack2進行出棧。
class Solution{ public: void push(int node) { stack1.push(node); // 數據放入棧1中 } // 將stack1出棧壓入stack2 int val; int pop() { if(stack2.empty()){ // 棧2為空 // 棧1中有元素 while(!stack1.empty()){ val=stack1.top(); // 依次取出棧1中的元素 stack2.push(val); // 放入棧2中 stack1.pop(); // 直到取完為止 } } // 棧2不為空,先出棧 val=stack2.top(); stack2.pop(); return val; } PRivate: stack<int> stack1; stack<int> stack2;};新聞熱點
疑難解答