C#栈的简单介绍及应用
2015-09-17 00:21
302 查看
Stack<T> 类
public class Stack<T> : IEnumerable<T>, ICollection, IEnumerable
Pop 方法弹出栈顶元素并删除
push方法压入栈顶元素
peek弹出栈顶元素不删除
ToArray 方法创建数组并将堆栈元素复制到其中
Contains 方法判断一个元素是否在栈中
在此使用MSDN中的例子。
结果如下:
public class Stack<T> : IEnumerable<T>, ICollection, IEnumerable
Pop 方法弹出栈顶元素并删除
push方法压入栈顶元素
peek弹出栈顶元素不删除
ToArray 方法创建数组并将堆栈元素复制到其中
Contains 方法判断一个元素是否在栈中
在此使用MSDN中的例子。
using System; using System.Collections.Generic; class Example { public static void Main() { Stack<string> numbers = new Stack<string>(); numbers.Push("one"); numbers.Push("two"); numbers.Push("three"); numbers.Push("four"); numbers.Push("five"); // 遍历元素 Console.ForegroundColor = ConsoleColor.Green; foreach (string number in numbers) { Console.WriteLine(number); } //pop弹出元素,并删除“five” Console.WriteLine("\nPopping '{0}'", numbers.Pop()); //peek弹出元素,但不删除 Console.WriteLine("Peek at next item to destack: {0}",numbers.Peek()); //再弹出再删除 Console.WriteLine("Popping '{0}'", numbers.Pop()); // 创建新栈,复制元素 Stack<string> stack2 = new Stack<string>(numbers.ToArray()); Console.ForegroundColor = ConsoleColor.Magenta; Console.WriteLine("\nContents of the first copy:"); foreach (string number in stack2) { Console.WriteLine(number); } // 创建双倍size数组,从一般开始存储栈元素 string[] array2 = new string[numbers.Count * 2]; numbers.CopyTo(array2, numbers.Count); // 再创建双倍size栈,将数组再存入 Stack<string> stack3 = new Stack<string>(array2); Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine("\nContents of the second copy, with duplicates and nulls:"); foreach (string number in stack3) { Console.WriteLine(number); } //contains用法 Console.WriteLine("\nstack2.Contains(\"four\") = {0}", stack2.Contains("four")); Console.WriteLine("\nstack2.Clear()"); //Clear()用法 stack2.Clear(); Console.WriteLine("\nstack2.Count = {0}", stack2.Count); } }
结果如下:
相关文章推荐
- C#多线程学习(一) 多线程的相关概念(转)
- C# 操作系统回收站
- C#机制
- C#~异步编程再续~async异步方法与同步方法的并行
- LeetCode 10 正则表达式匹配
- c#基于这些,你已经看到了?(一)-----谁才刚刚开始学习使用
- C# 生成CODE128条码
- 关于C#文件复制(递归)
- C#中var关键字
- C#调用耗时函数时显示进度条方式
- C#中出现访问性不一致的解决方法
- ORA-01000:超出打开游标的最大数(C#)
- (转) C#如何使用异步编程
- C# 自动升级更新winform程序
- C# 实现Excel的线性插值Forecast函数
- 重新学习C# 之 常量
- C#中yield return用法分析
- C# MSChart图表控件使用介绍
- C#中汉字排序简单示例(拼音/笔划)
- C# Datatable排序