zoukankan      html  css  js  c++  java
  • C#队列学习笔记:队列(Queue)和堆栈(Stack)

        一、队列(Queue)

        1.1、概念

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

        1.2、Queue类的属性

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

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

        1.3、Queue类的方法

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

    序号方法名 & 描述
    1 public virtual void Clear(); 
    从 Queue 中移除所有的元素。
    2 public virtual bool Contains( object obj ); 
    判断某个元素是否在 Queue 中。
    3 public virtual object Dequeue();
    移除并返回在 Queue 的开头的对象。
    4 public virtual void Enqueue( object obj ); 
    向 Queue 的末尾添加一个对象。
    5 public virtual object[] ToArray();
    复制 Queue 到一个新的数组中。
    6 public virtual void TrimToSize();
    设置容量为 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
            }
        }

        运行结果如下:

        参考自:

        https://www.cnblogs.com/JiYF/p/6281667.html

  • 相关阅读:
    多重网格法简介(Multi Grid)
    数值分析方法库
    离散外微积分(DEC:Discrete Exterior Calculus)基础
    楔积(Wedge Procut)
    牛顿迭代法(Newton's Method)
    四元素还是向量?
    曲率(Curvature)
    共变导数(Covariant Derivative)
    正定矩阵(Positive-definite Matrix)
    散度(Divergence)和旋度(Curl)
  • 原文地址:https://www.cnblogs.com/atomy/p/12548591.html
Copyright © 2011-2022 走看看