国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 平顶山市| 准格尔旗| 泸水县| 浦东新区| 汉川市| 定南县| 旺苍县| 武冈市| 阿巴嘎旗| 右玉县| 舞钢市| 伊春市| 宁蒗| 和田市| 河北区| 池州市| 河津市| 桑植县| 沈丘县| 长泰县| 和平区| 乡宁县| 涡阳县| 台北市| 博湖县| 珠海市| 河北区| 宁陵县| 正宁县| 富裕县| 修武县| 恩施市| 广西| 衡南县| 福建省| 邵阳市| 江油市| 奉节县| 吉安县| 广宁县| 弋阳县|