C#栈的简单介绍

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#栈的简单介绍相关的知识,希望对你有一定的参考价值。

    栈(Stack)代表了一个只有一个出口的后进先出的对象集合。在列表中添加一项,称为推入元素,从列表中移除一项时,称为弹出元素。

    Stack<T> 类

    public class Stack<T> : IEnumerable<T>, ICollection, IEnumerable

  • 属性

    Count  获取 Stack 中包含的元素个数

  • 方法

    Pop   移除并返回在 Stack 的顶部的对象

    push  向 Stack 的顶部添加一个对象

    peek  返回在 Stack 的顶部的对象,但不移除它

    ToArray  创建数组并将堆栈元素复制到其中

    Contains   判断一个元素是否在栈中

    Clear  从 Stack 中移除所有的元素。

  • 实例

在此使用MSDN中例子。以下代码及结果显示图片来自:C#栈的简单介绍及应用

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#零基础入门之百识百例》(五十六)多态介绍 -- 简单工厂模式

数据结构栈的实现与简单应用