国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

225. Implement Stack using Queues

2019-11-08 01:31:42
字體:
供稿:網(wǎng)友

題目

Implement the following Operations of a stack using queues.

push(x) – Push element x onto stack. pop() – Removes the element on top of the stack. top() – Get the top element. empty() – Return whether the stack is empty. Notes: You must use only standard operations of a queue – which means only push to back, peek/pop from front, size, and is empty operations are valid. Depending on your language, queue may not be supported natively. You may simulate a queue by using a list or deque (double-ended queue), as long as you use only standard operations of a queue. You may assume that all operations are valid (for example, no pop or top operations will be called on an empty stack).


思路

棧的相關(guān)實現(xiàn)


代碼

class Stack { queue<int> q1; queue<int> q2;public: // Push element x onto stack. void push(int x) { if(q1.empty()) { q2.push(x); } else { q1.push(x); } } // Removes the element on top of the stack. void pop() { if(q1.empty()) { transElement(2); q2.pop(); } else { transElement(1); q1.pop(); } } // Get the top element. int top() { int result; if(q1.empty()) { //q2轉(zhuǎn)q1 transElement(2); result = q2.front(); q1.push(q2.front()); q2.pop(); } else { transElement(1); result = q1.front(); q2.push(q1.front()); q1.pop(); } return result; } // Return whether the stack is empty. bool empty() { return q1.empty() && q2.empty(); } //1為q1->q2,2為q2->q1 void transElement(int num) { if(num == 1) { while(q1.size() > 1) { q2.push(q1.front()); q1.pop(); } } else { while(q2.size() > 1) { q1.push(q2.front()); q2.pop(); } } }};
上一篇:八大排序算法

下一篇:Session 跟 Cookie

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 安康市| 嫩江县| 桐城市| 中超| 玉龙| 社旗县| 班戈县| 兰西县| 永康市| 南安市| 镇平县| 东宁县| 丹东市| 龙江县| 保山市| 蒙山县| 梁山县| 调兵山市| 邵东县| 芜湖县| 甘孜| 池州市| 巴彦淖尔市| 灵川县| 芮城县| 灵山县| 南木林县| 邵武市| 永定县| 桐庐县| 乌兰察布市| 青州市| 乌海市| 天气| 防城港市| 蕉岭县| 凤庆县| 大名县| 枣庄市| 辽中县| 云和县|