您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“C#中棧和隊列的用法示例”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“C#中棧和隊列的用法示例”這篇文章吧。
堆棧(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 到一個新的數組中。
========================================================
隊列(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 中元素的實際個數。
=========================================================
簡單實例:
編程判斷一個字符串是否是回文。回文是指一個字符序列以中間字符為基準兩邊字符完全相同,如字符序列“ACBDEDBCA”是回文。
算法思想:
判斷一個字符序列是否是回文,就是把第一個字符與最后一個字符相比較,第二個字符與倒數第二個字符比較,依次類推,第 i 個字符與第 n-i個字符比較。如果每次比較都相等,則為回文,如果某次比較不相等,就不是回文。因此,可以把字符序列分別入隊列和棧,然后逐個出隊列和出棧并比較出隊列的字符和出棧的字符是否相等,若全部相等則該字符序列就是回文,否則就不是回文。
using System; using System.Collections.Generic; namespace 棧和隊列舉例 { class Program { static void Main(string[] args) { string str = Console.ReadLine(); Stack<char> stack = new Stack<char>(); Queue<char> queue = new Queue<char>(); for (int i = 0; i < str.Length; i++) { stack.Push(str[i]); queue.Enqueue(str[i]); } bool isHui = true; while(stack.Count > 0) { if(stack.Pop() != queue.Dequeue()) { isHui = false; break; } } Console.WriteLine("是否回文字符串:" + isHui); Console.ReadKey(); } } }
以上是“C#中棧和隊列的用法示例”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。