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

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

棧的反轉(zhuǎn)練習

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

實現(xiàn)一個棧的逆序,但是只能用遞歸函數(shù)和這個棧本身的pop操作來實現(xiàn),而不能自己申請另外的數(shù)據(jù)結(jié)構(gòu)。 給定一個整數(shù)數(shù)組A即為給定的棧,同時給定它的大小n,請返回逆序后的棧。 測試樣例: [4,3,2,1],4 返回:[1,2,3,4]

這道題考察的是棧的逆序,不借助新的數(shù)據(jù)結(jié)構(gòu)實現(xiàn)棧的翻轉(zhuǎn),利用兩個函數(shù),一個是得到棧最末尾元素的函數(shù)和翻轉(zhuǎn)函數(shù),想法是先得到最末尾的元素,之后將棧翻轉(zhuǎn),將最末尾的元素壓入棧即可。代碼如下

class StackReverse {public: vector<int> reverseStack(vector<int> A, int n) { if(n<=1) return A; stack<int> mystack; for(auto c:A) mystack.push(c); reversestack(mystack); for(int i=n-1;i!=-1;--i) { A[i]=mystack.top(); mystack.pop(); } return A; } void reversestack(stack<int> &my_stack) { int end=getend(my_stack); if(my_stack.empty()){ my_stack.push(end); return; } reversestack(my_stack); my_stack.push(end); } int getend(stack<int> &my_stack) { int res; int top=my_stack.top(); my_stack.pop(); if(my_stack.empty()) return top; else { res=getend(my_stack); my_stack.push(top); } return res; }};
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 资源县| 兰西县| 连平县| 贵南县| 泾川县| 哈巴河县| 榕江县| 定西市| 嵊州市| 蓝田县| 武清区| 辽阳县| 秦皇岛市| 都兰县| 岳阳市| 深泽县| 岳池县| 鞍山市| 开阳县| 崇信县| 平泉县| 金湖县| 渭南市| 红原县| 灵川县| 伊春市| 西盟| 清丰县| 宁海县| 峨眉山市| 洮南市| 邯郸县| 松原市| 游戏| 普陀区| 阆中市| 于都县| 定州市| 新干县| 怀化市| 尼木县|