首页 > Windows开发 > 详细

C#=>递归反转栈

时间:2015-12-10 23:31:43      阅读:324      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!