码迷,mamicode.com
首页 > Windows程序 > 详细

C#=>递归反转栈

时间:2015-12-10 23:32:42      阅读:490      评论:0      收藏:0      [点我收藏+]

标签:

原理,递归反转栈
技术分享
 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Threading.Tasks;
 5 
 6 namespace StacksReverse
 7 {
 8     public class Program
 9     {
10         public void Main(string[] args)
11         {
12             StacksReverses stacksReverses = new StacksReverses();
13             Stack<int> stack = new Stack<int>();
14 
15             stack.Push(1);
16             stack.Push(2);
17             stack.Push(3);
18             stack.Push(4);
19             stack.Push(5);
20             stack.Push(6);
21             stack.Push(7);
22 
23             stacksReverses.reverse(stack);
24 
25             Console.ReadLine();
26         }
27 
28         public class StacksReverses
29         {
30             public int GetAndRemoveLastElement(Stack<int> stack)
31             {
32                 int result = stack.Pop();
33                 if (stack.Count() == 0) return result;
34                 int last = GetAndRemoveLastElement(stack);
35                 stack.Push(result);
36                 return last;
37             }
38             public void reverse(Stack<int> stack)
39             {
40                 if (stack.Count() == 0) return;
41                 int i = GetAndRemoveLastElement(stack);
42                 reverse(stack);
43                 stack.Push(i);
44             }
45         }
46     }
47 }
View Code

 

C#=>递归反转栈

标签:

原文地址:http://www.cnblogs.com/shidengyun/p/5037621.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!