C#集合之栈
栈(Stack)和队列是非常类似的一个容器,只是栈是一个后进先出(LIFO)的容器。
栈用Push()方法在栈中添加元素,用Pop()方法获取最近添加的一个元素:

Stack<T>与Queue<T>类(http://www.cnblogs.com/afei-24/p/6829817.html)类似,实现了ICollection和IEnumerable<T>接口。
Stack<T>类的成员:

在foreach语句中,栈的枚举器不会删除元素,它只会逐个返回元素。使用Pop()方法会从栈中读取每个元素,然后删除它们。
static void Main()
{
var alphabet = new Stack<char>();
alphabet.Push('A');
alphabet.Push('B');
alphabet.Push('C'); Console.Write("First iteration: ");
foreach (char item in alphabet)
{
Console.Write(item);
}
Console.WriteLine(); Console.Write("Second iteration: ");
while (alphabet.Count > )
{
Console.Write(alphabet.Pop());
}
Console.WriteLine(); }
第二次迭代后,栈变空。
C#集合之栈的更多相关文章
- 用LinkedList集合演示栈和队列的操作
在数据结构中,栈和队列是两种重要的线性数据结构.它们的主要不同在于:栈中存储的元素,是先进后出:队列中存储的元素是先进先出.我们接下来通过LinkedList集合来演示栈和队列的操作. import ...
- java 集合 Connection 栈 队列 及一些常用
集合家族图 ---|Collection: 单列集合 ---|List: 有存储顺序 , 可重复 ---|ArrayList: 数组实现 , 查找快 , 增删慢 ---|LinkedList: 链表实 ...
- LinkedList集合 实现栈和队列
LinkedList集合的底层是链表结构实现的,所以可以模拟栈(先进后出)和队列(先进先出). 方法: addFirst() //添加元素到列表的起始位置 addLast() //添加元素到列表的结束 ...
- 算法习题---5.5集合栈计算机(Uva12096)*****
一:题目 对于一个以集合为元素的栈,初始时栈为空. 输入的命令有如下几种: PUSH:将空集{}压栈 DUP:将栈顶元素复制一份压入栈中 UNION:先进行两次弹栈,将获得的集合A和B取并集,将结果压 ...
- ArrayList集合 、特殊集合
一.ArrayList集合 集合内可以放不同类型的元素 另:object类型为所有数据类型的基类 添加元素:.add(); 清空集合:al.clear(); 克隆集合:.clone(); 判断是否包含 ...
- 2016年10月16日--ArrayList集合、特殊集合
ArrayList集合 使用前引用 using System.Collections; ArrayList集合 实例化.初始化 ArrayList al = new ArrayList(); Arra ...
- ArrayList集合&特殊集合
一.ArrayList集合 集合内可以放不同类型的元素 另:object类型为所有数据类型的基类 添加元素:.add(); 清空集合:al.clear(); 克隆集合:.clone(); 判断是否包含 ...
- 纸上谈兵:栈(stack)
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 栈(stack)是简单的数据结构,但在计算机中使用广泛.它是有序的元素集合.栈最显 ...
- JavaEE基础(十六)/集合
1.集合框架(去除ArrayList中重复字符串元素方式) A:案例演示 需求:ArrayList去除集合中字符串的重复值(字符串的内容相同) 思路:创建新集合方式 /** * A:案例演示 * 需求 ...
随机推荐
- spark读写Sequoiadb
spark如何读写Sequoiadb,最近被客户问多了,这个记录下. Spark读Sequoiadb数据: package marketing import com.sequoiadb.hadoop. ...
- back propogation 的线代描述
参考资料: 算法部分: standfor, ufldl : http://ufldl.stanford.edu/wiki/index.php/UFLDL_Tutorial 一文弄懂BP:https: ...
- 用kettle实现数据库迁移之oracle到mysql
项目完成后,需要把历史oracle 的数据库转移mysql 用kettle 转换数据. 步骤: 1.打开spoon.bat,文件-->新建-->转换,点击“主对象树”,DB连接右键“新建” ...
- [GO]errorr接口的使用
package main import ( "fmt" "errors" ) func main() { erro1 := fmt.Errorf("% ...
- (转)走进AngularJs(六) 服务
原文地址:http://www.cnblogs.com/lvdabao/p/3464015.html 今天学习了一下ng的service机制,作为ng的基本知识之一,有必要做一个了解,在此做个笔记记录 ...
- idea中java文件打包出去步骤
打包出去之后 通过xftp放在Linus上面去运行 然后用hadoop fs -put 放到hadoop集群上面(而且此时在/user/hadoop下面创建好input文件夹和一个输入的文件) 即 ...
- ViewResolver 视图解析器
pringMVC 视图解析器 前言 在前一篇博客中讲了 SpringMVC 的Controller 控制器,在这篇博客中将接着介绍一下 SpringMVC 视图解析器.当我们对SpringMVC控制的 ...
- 读取IE缓存文件
使用WebCacheTool项目中的WinInetAPI.cs和Win32API.cs两个类 /// <summary> /// 获取IE缓存文件 /// </summary> ...
- Hadoop 文件命令
* 文件操作 * 查看目录文件 * $ hadoop dfs -ls /user/cl * * 创建文件目录 * $ hadoop dfs -mkdir /user/cl/temp * * 删除文件 ...
- 微信开发之c#下jssdk签名生成
参考文章 :微信JS-SDK 权限签名算法 C#版 这篇文章讲解的的比较详细,而且算法准确,但是这篇文章有几个错误的地方需要注意; url必须动态生成 url不能写死,否则就算结果和官方检测的一致,也 ...