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


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

    C# 队列(Queue)

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

    Queue 类的方法和属性

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

    属性描述
    Count 获取 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 中元素的实际个数。

    实例

    下面的实例演示了队列(Queue)的使用:

    复制代码
     1 using System;
     2 using System.Collections;
     3 
     4 namespace CollectionsApplication
     5 {
     6    class Program
     7    {
     8       static void Main(string[] args)
     9       {
    10          Queue q = new Queue();
    11 
    12          q.Enqueue('A');
    13          q.Enqueue('M');
    14          q.Enqueue('G');
    15          q.Enqueue('W');
    16          
    17          Console.WriteLine("Current queue: ");
    18          foreach (char c in q)
    19             Console.Write(c + " ");
    20          Console.WriteLine();
    21          q.Enqueue('V');
    22          q.Enqueue('H');
    23          Console.WriteLine("Current queue: ");         
    24          foreach (char c in q)
    25             Console.Write(c + " ");
    26          Console.WriteLine();
    27          Console.WriteLine("Removing some values ");
    28          char ch = (char)q.Dequeue();
    29          Console.WriteLine("The removed value: {0}", ch);
    30          ch = (char)q.Dequeue();
    31          Console.WriteLine("The removed value: {0}", ch);
    32          Console.ReadKey();
    33       }
    34    }
    35 }
    复制代码

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

    Current queue: 
    A M G W 
    Current queue: 
    A M G W V H 
    Removing values
    The removed value: A
    The removed value: M



    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)的使用:

    复制代码
     1 using System;
     2 using System.Collections;
     3 
     4 namespace CollectionsApplication
     5 {
     6     class Program
     7     {
     8         static void Main(string[] args)
     9         {
    10             Stack st = new Stack();
    11 
    12             st.Push('A');
    13             st.Push('M');
    14             st.Push('G');
    15             st.Push('W');
    16             
    17             Console.WriteLine("Current stack: ");
    18             foreach (char c in st)
    19             {
    20                 Console.Write(c + " ");
    21             }
    22             Console.WriteLine();
    23             
    24             st.Push('V');
    25             st.Push('H');
    26             Console.WriteLine("The next poppable value in stack: {0}", 
    27             st.Peek());
    28             Console.WriteLine("Current stack: ");           
    29             foreach (char c in st)
    30             {
    31                Console.Write(c + " ");
    32             }
    33             Console.WriteLine();
    34 
    35             Console.WriteLine("Removing values ");
    36             st.Pop();
    37             st.Pop();
    38             st.Pop();
    39             
    40             Console.WriteLine("Current stack: ");
    41             foreach (char c in st)
    42             {
    43                Console.Write(c + " "); 
    44             }
    45         }
    46     }
    47 }
    复制代码

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

    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
  • 相关阅读:
    数据库命令基本操作
    26、驱动模块和桩模块的概念和区别
    图像的均值、均方值、方差、均方差、标准差
    67、反射机制
    66、线程的生命周期
    PHP 的 SAPI 是个什么东西(转)
    无需重新编译安装PHP扩展的方法
    swoole之创建子进程
    swoole之异步文件IO
    swoole之任务和定时器
  • 原文地址:https://www.cnblogs.com/wwwbdabc/p/10399680.html
Copyright © 2020-2023  润新知