C#集合之栈的用法

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

Stack<T>与Queue<T>类(https://www.jb51.net/article/244090.htm)类似,实现了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 > 0)
            {
                Console.Write(alphabet.Pop());
            }
            Console.WriteLine();

        }

第二次迭代后,栈变空。

到此这篇关于C#集合之栈的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • C#集合之队列的用法

    队列是其元素按照先进先出(FIFO)的方式来处理的集合.队列使用System.Collections.Generic名称空间中的泛型类Queue<T>实现.在内部,Queue<T>类使用T类型的数组,这类似List<T>(https://www.jb51.net/article/244084.htm)类型.队列实现ICollection和IEnumerable<T>接口,但没有实现ICollection<T>接口,所以ICollection<

  • C#集合之列表的用法

    目录 1.创建列表 2.添加元素 3.插入元素 4.访问元素 5.删除元素 6.搜索 7.排序 8.类型转换 9.只读集合 .NET Framework为动态列表List提供泛型类List<T>.这个类实现了IList,ICollection,IEnumerable,IList<T>,ICollection<T>,IEnumerable<T>接口. 1.创建列表 创建一个赛车手类,下面的例子会用到: public class Racer : ICompara

  • C#集合之栈的用法

    栈(Stack)和队列是非常类似的一个容器,只是栈是一个后进先出(LIFO)的容器.栈用Push()方法在栈中添加元素,用Pop()方法获取最近添加的一个元素: Stack<T>与Queue<T>类(https://www.jb51.net/article/244090.htm)类似,实现了ICollection和IEnumerable<T>接口.Stack<T>类的成员: 在foreach语句中,栈的枚举器不会删除元素,它只会逐个返回元素.使用Pop()方

  • java集合中list的用法代码示例

    List接口是Collection接口的子接口,List有一个重要的实现类--ArrayList类,List中的元素是有序排列的而且可重复,所以被称为是序列. List可以精确的控制每个元素的插入位置,或删除某个位置元素,它的实现类ArrayList底层是由数组实现的. List中有增删改查的方法,我们可以通过例子演示: 我们通过对学生选课,来演示List中对课程增删改查的方法 /** * 课程类 * @author lenovo * */ public class KeCheng { publ

  • Python字典生成式、集合生成式、生成器用法实例分析

    本文实例讲述了Python字典生成式.集合生成式.生成器用法.分享给大家供大家参考,具体如下: 字典生成式: 跟列表生成式一样,字典生成式用来快速生成字典,不同的是,字典需要两个值 #d = {key: value for (key, value) in iterable} d1 = {'x': 1, 'y': 2, 'z': 3} d2 = {k: v for (k, v) in d1.items()} print(d2) 集合生成式: 集合生成式格式和列表生成式类似,不过用的是大括号: s1

  • JavaScript数据结构之栈实例用法

    栈 先来看一道题 Leetcode 32 Longest Valid Parentheses (最长有效括号) 给定一个只包含 '(' 和 ')' 的字符串,找出最长的包含有效括号的子串的长度. 示例 1: 输入: "(()" 输出: 2 解释: 最长有效括号子串为 "()" 示例 2: 输入: ")()())" 输出: 4 解释: 最长有效括号子串为 "()()" 这道题可以用动态规划来做,也能用简洁明了的栈来解决. 什么是

  • C#集合之字典的用法

    字典表示一种复杂的数据结构,这种数据结构允许按照某个键来访问元素.字典也称为映射或散列表.字典的主要特性是能根据键快速查找值.也可以自由添加和删除元素,这有点像List<T>(https://www.jb51.net/article/244084.htm),但没有在内存中移动后续元素的性能开销.下图是一个简化表示,键会转换位一个散列.利用散列创建一个数字,它将索引和值关联起来.然后索引包含一个到值的链接.一个索引项可以关联多个值,索引可以存储为一个树型结构. .NET Framework提供了

  • C#集合之链表的用法

    LinkedList<T>是一个双向链表,其元素会指向它前面和后面的元素.这样,通过移动到下一个元素可以正向遍历链表,通过移动到前一个元素可以反向遍历链表. 链表在存储元素时,不仅要存储元素的值,还必须存储每个元素的下一个元素和上一个元素的信息.这就是LinkedList<T>包含LinkedListNode<T>类型的元素的原因.使用LinkedListNode<T>,可以获得列表中的下一个和上一个元素.LinkedListNode<T>定义了

  • ASP.NET中实现把form表单元素转为实体对象或集合

    简介: 做WEBFROM开发的同学都知道后台接收参数非常麻烦 虽然MVC中可以将表单直接转为集实,但不支持表单转为 LIST<T>这种集合 单个对象的用法: 表单: 复制代码 代码如下: <input name='id'  value='1' > <input name='sex'  value='男' > 后台: 复制代码 代码如下: //以前写法             DLC_category d = new DLC_category();            

  • C#数据结构与算法揭秘五 栈和队列

    这节我们讨论了两种好玩的数据结构,栈和队列. 老样子,什么是栈, 所谓的栈是栈(Stack)是操作限定在表的尾端进行的线性表.表尾由于要进行插入.删除等操作,所以,它具有特殊的含义,把表尾称为栈顶(Top) ,另一端是固定的,叫栈底(Bottom) .当栈中没有数据元素时叫空栈(Empty Stack).这个类似于送饭的饭盒子,上层放的是红烧肉,中层放的水煮鱼,下层放的鸡腿.你要把这些菜取出来,这就引出来了栈的特点先进后出(First in last out).   具体叙述,加下图. 栈通常记

随机推荐