C# 队列(Queue)和堆栈(Stack)

一、队列(Queue)

1.1、概念

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

1.2、Queue类的属性

下表列出了Queue类的一些常用的属性:
在这里插入图片描述

1.3、Queue类的方法

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

在这里插入图片描述

1.4、示例演示

class Program
{
    static void Main(string[] args)
    {
        #region 队列
        Queue queue = new Queue();

        queue.Enqueue('A');
        queue.Enqueue('B');
        queue.Enqueue('C');
        queue.Enqueue('D');

        Console.WriteLine("Current queue: ");
        foreach (char item in queue)
        {
            Console.Write(item + " ");
        }
        Console.WriteLine();

        queue.Enqueue('E');
        queue.Enqueue('F');

        Console.WriteLine("Current queue: ");
        foreach (char item in queue)
        {
            Console.Write(item + " ");
        }
        Console.WriteLine();

        Console.WriteLine("Removing some values: ");
        char c = (char)queue.Dequeue();
        Console.WriteLine($"The removed value: {c}");
        c = (char)queue.Dequeue();
        Console.WriteLine($"The removed value: {c}");

        Console.Read();
        #endregion
    }
}
运行结果如下:

在这里插入图片描述

二、堆栈(Stack)

2.1、概念

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

2.2、Stack类的属性

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

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

2.3、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 到一个新的数组中。

2.4、示例演示

class Program
{
    static void Main(string[] args)
    {
        #region 堆栈
        Stack stack = new Stack();

        stack.Push('A');
        stack.Push('B');
        stack.Push('C');
        stack.Push('D');

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

        stack.Push('E');
        stack.Push('F');

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

        Console.WriteLine($"The next popable value in stack: {stack.Peek()}");

        Console.WriteLine("Removing some values: ");
        stack.Pop();
        stack.Pop();
        stack.Pop();

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

        Console.Read();
        #endregion
    }
}
运行结果如下:

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值