C# Stack堆栈的使用方法

堆栈(Stack)代表了一个后进先出的对象集合。当您需要对各项进行后进先出的访问时,则使用堆栈。当您在列表中添加一项,称为推入元素,当您从列表中移除一项时,称为弹出元素。

Stack 类的方法和属性

下表列出了 Stack 类的一些常用的 属性

属性 描述
Count 获取 Stack 中包含的元素个数。

下表列出了 Stack 类的一些常用的 方法

序号 方法名 & 描述
1 public virtual void Clear(); 从 Stack 中移除所有的元素。
2 public virtual bool Contains( object obj ); 判断某个元素是否在 Stack 中。
3 public virtual object Peek(); 返回在 Stack 的顶部的对象,但不移除它。
4 public virtual object Pop(); 移除并返回在 Stack 的顶部的对象。
5 public virtual void Push( object obj ); 向 Stack 的顶部添加一个对象。
6 public virtual object[] ToArray(); 复制 Stack 到一个新的数组中。

实例

下面的实例演示了堆栈(Stack)的使用:

using System;
using System.Collections;

namespace CollectionsApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            Stack st = new Stack();

            st.Push(‘A‘);
            st.Push(‘M‘);
            st.Push(‘G‘);
            st.Push(‘W‘);

            Console.WriteLine("Current stack: ");
            foreach (char c in st)
            {
                Console.Write(c + " ");
            }
            Console.WriteLine();

            st.Push(‘V‘);
            st.Push(‘H‘);
            Console.WriteLine("The next poppable value in stack: {0}",
            st.Peek());
            Console.WriteLine("Current stack: ");
            foreach (char c in st)
            {
               Console.Write(c + " ");
            }
            Console.WriteLine();

            Console.WriteLine("Removing values ");
            st.Pop();
            st.Pop();
            st.Pop();

            Console.WriteLine("Current stack: ");
            foreach (char c in st)
            {
               Console.Write(c + " ");
            }
        }
    }
}

当上面的代码被编译和执行时,它会产生下列结果:

Current stack:
W G M A
The next poppable value in stack: H
Current stack:
H V W G M A
Removing values
Current stack:
G M A

时间: 2024-10-02 21:04:02

C# Stack堆栈的使用方法的相关文章

使用Stack堆栈集合大数据运算

使用Stack堆栈集合大数据运算 package com.sta.to; import java.util.Iterator; import java.util.Stack; public class DaMax { public void jiaFa(String value1, String value2) { /** * 更多资料欢迎浏览凯哥学堂官网:http://kaige123.com * @author 小沫 */ // 把字符串用toCharArray拆成字符 char[] c1

VS2015--在 Visual Studio 中调试时映射调用堆栈上的方法

https://msdn.microsoft.com/zh-cn/library/dn194476.aspx 在 Visual Studio 中调试时映射调用堆栈上的方法 创建代码图,以便在调试时对调用堆栈进行可视化跟踪.你可以在图中进行标注以跟踪代码执行的操作,以便专注于查找 Bug. 生成调用堆栈图 1 开始调试.(键盘:"F5") 2 在你的应用进入中断模式或你单步执行某一函数之后,请选择"代码图".(键盘:Ctrl + Shift + `) 当前的调用堆栈在

第18章 stack堆栈容器

/* 第18章 stack堆栈容器 18.1 stack技术原理 18.2 stack应用基础 18.3 本章小结 */ // 第18章 stack堆栈容器 // 18.1 stack技术原理 ------------ // 18.2 stack应用基础 --------------------------------------------------------------------------------- //268 #include <stack> #include <ios

【Java集合的详细研究9】Java堆栈(stack)的使用方法

栈是一种常用的数据结构,栈只允许访问栈顶的元素,栈就像一个杯子,每次都只能取杯子顶上的东西,而对于栈就只能每次访问它的栈顶元素,从而可以达到保护栈顶元素以下的其他元素."先进后出"或"后进先出"就是栈的一大特点,先进栈的元素总是要等到后进栈的元素出栈以后才能出栈.递归就是利用到了系统栈,暂时保存临时结果,对临时结果进行保护. 栈是存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字符串常量对象存放在常量池中.

leetcode_20题——Valid Parentheses(string,stack堆栈)

Valid Parentheses Total Accepted: 47887 Total Submissions: 180550My Submissions Question Solution Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid. The brackets must close in the co

LinkedList练习-队列获取元素方法、堆栈获取元素方法!

堆栈:如同一个水杯.先进后出. 队列:如同一个水管,先进先出. import java.util.*; class DuiDemo { private LinkedList link; DuiDemo() { link = new LinkedList(); } public void myAdd(Object obj)//对外提供一个添加元素的方法,调用LinkedList本身的方法以封装对外提供. { link.addFirst(obj); } public Object myGet()//

stack堆栈容器

堆栈是一种线性表,插入和删除操作只在表的一端进行,该端成为栈顶,另一端则称为栈底.元素的入栈和出栈都是在栈顶进行的,因此堆栈是一种后进先出表(LIFO).C++ STL的堆栈泛化是通过现有的序列容器来实现的,默认使用的是双端队列deque的数据结构.在STL中,stack的元素出栈操作是不返回栈顶元素的,获得栈顶元素需要调用相应的取栈顶函数才能获得,这种分离的实现,是考虑到出栈函数若是直接返回栈顶元素,将会导致返回值的数据引用安全问题或者不必要的低效复制函数的调用. 创建stack对象 主要有以

51单片机stack堆栈

一般编译器的堆栈用于保存局部变量.函数的参数.函数的返回值.中断上下文信息等.但Keil对局部变量.函数参数预先分配空间(放在静态全局变量区),Keil的堆栈只是用于保存函数嵌套调用的PC.中断上下文信息. 从主程序进入中断需要入栈字节数:13+PC=15 Byte(ACC,PSW,B,DPH,DPL,R0~R7) Keil支持2级中断15×2=30 Byte. 主程序中每级调用需要消耗2字节保存PC,如调用深度6级,需要6×2=12字节堆栈空间. Keil51 编译后会生成M51文件,查找?S

Linux 系统中堆栈的使用方法

本节内容概要描述了Linux内核从开机引导到系统正常运行过程中对堆栈的使用方式.这部分内容的说明与内核代码关系比较密切,可以先跳过.在开始阅读相应代码时再回来仔细研究. Linux 0.12系统中共使用了4种堆栈.第1种是系统引导初始化时临时使用的堆栈:第2种是进入保护模式之后提供内核程序初始化使用的堆栈,位于内核代码地址空间固定位置处.该堆栈也是后来任务0使用的用户态堆栈:第3种是每个任务通过系统调用,执行内核程序时使用的堆栈,我们称之为任务的内核态堆栈.每个任务都有自己独立的内核态堆栈:第4