集合

预计阅读时间2 分钟 4 views

C# Stack

C# Stack

前言

Stack<T> 是一个泛型类,按照“后进先出”(LIFO)的原则排列指定数据类型的元素。例如:

using System;
using System.Collections.Generic;

class Program
{
    public static void Main()
    {
        // 创建一个栈
        Stack<string> country = new Stack<string>();

        // 向栈中推送 "USA" 和 "India"
        country.Push("USA");
        country.Push("India");

        // 打印栈中的元素
        foreach (string item in country)
        {
            Console.WriteLine(item);
        }
    }
}

输出

India
USA

在这个例子中,country 是一个 Stack<string>,包含了字符串元素(”USA” 和 “India”)。接下来,我们将详细了解 Stack<T>

作用

Stack<T> 用于存储遵循“后进先出”原则的元素。这意味着最新添加的元素总是最先被访问或移除。这种数据结构非常适合需要逆序处理数据的场景。

使用场景

Stack<T> 适用于以下情况:

  1. 逆序处理数据:如撤销操作、浏览器历史记录等。
  2. 表达递归:如解析表达式或实现递归算法。
  3. 算法实现:如深度优先搜索等需要后进先出的算法。

示例

  1. 创建 Stack
using System;
using System.Collections.Generic;

class Program
{
    public static void Main()
    {
        // 创建整数类型的栈
        Stack<int> stack1 = new Stack<int>();

        // 创建字符串类型的栈
        Stack<string> stack2 = new Stack<string>();
    }
}
  1. 使用 Push() 方法
using System;
using System.Collections.Generic;

class Program
{
    public static void Main()
    {
        // 创建一个栈并推送两个元素
        Stack<string> books = new Stack<string>();

        // 向栈中添加两个元素
        books.Push("《红楼梦》");
        books.Push("《三国演义》");

        // 打印栈中的元素
        foreach (string item in books)
        {
            Console.WriteLine(item);
        }
    }
}

输出

《三国演义》
《红楼梦》
  1. 使用 Pop() 方法
using System;
using System.Collections.Generic;

class Program
{
    public static void Main()
    {
        // 创建一个栈
        Stack<string> fruits = new Stack<string>();
        fruits.Push("苹果");
        fruits.Push("香蕉");

        // 弹出栈顶的元素
        Console.WriteLine("弹出元素: " + fruits.Pop());
    }
}

输出

弹出元素: 香蕉
  1. 使用 Peek() 方法
using System;
using System.Collections.Generic;

class Program
{
    public static void Main()
    {
        // 创建一个栈
        Stack<string> cities = new Stack<string>();
        cities.Push("北京");
        cities.Push("上海");

        // 返回栈顶的元素
        Console.WriteLine("栈顶的元素: " + cities.Peek());
    }
}

输出

栈顶的元素: 上海

结语

Stack<T> 提供了一种高效的方式来管理遵循“后进先出”原则的数据集合。通过理解和使用 Stack<T>,可以在需要逆序处理数据的应用场景中提升代码的效率和可读性。

Leave a Comment

分享此文档

或复制链接

内容