您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“C#中棧和隊(duì)列的用法示例”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“C#中棧和隊(duì)列的用法示例”這篇文章吧。
堆棧(Stack)
代表了一個(gè)后進(jìn)先出的對象集合。當(dāng)您需要對各項(xiàng)進(jìn)行后進(jìn)先出的訪問時(shí),則使用堆棧。當(dāng)您在列表中添加一項(xiàng),稱為推入元素,當(dāng)您從列表中移除一項(xiàng)時(shí),稱為彈出元素。
常用方法:
1 public virtual void Clear();
從 Stack 中移除所有的元素。
2 public virtual bool Contains( object obj );
判斷某個(gè)元素是否在 Stack 中。
3 public virtual object Peek();
返回在 Stack 的頂部的對象,但不移除它。
4 public virtual object Pop();
移除并返回在 Stack 的頂部的對象。
5 public virtual void Push( object obj );
向 Stack 的頂部添加一個(gè)對象。
6 public virtual object[] ToArray();
復(fù)制 Stack 到一個(gè)新的數(shù)組中。
========================================================
隊(duì)列(Queue)
代表了一個(gè)先進(jìn)先出的對象集合。當(dāng)您需要對各項(xiàng)進(jìn)行先進(jìn)先出的訪問時(shí),則使用隊(duì)列。當(dāng)您在列表中添加一項(xiàng),稱為入隊(duì),當(dāng)您從列表中移除一項(xiàng)時(shí),稱為出隊(duì)。
常用方法:
1 public virtual void Clear();
從 Queue 中移除所有的元素。
2 public virtual bool Contains( object obj );
判斷某個(gè)元素是否在 Queue 中。
3 public virtual object Dequeue();
移除并返回在 Queue 的開頭的對象。
4 public virtual void Enqueue( object obj );
向 Queue 的末尾添加一個(gè)對象。
5 public virtual object[] ToArray();
復(fù)制 Queue 到一個(gè)新的數(shù)組中。
6 public virtual void TrimToSize();
設(shè)置容量為 Queue 中元素的實(shí)際個(gè)數(shù)。
=========================================================
簡單實(shí)例:
編程判斷一個(gè)字符串是否是回文?;匚氖侵敢粋€(gè)字符序列以中間字符為基準(zhǔn)兩邊字符完全相同,如字符序列“ACBDEDBCA”是回文。
算法思想:
判斷一個(gè)字符序列是否是回文,就是把第一個(gè)字符與最后一個(gè)字符相比較,第二個(gè)字符與倒數(shù)第二個(gè)字符比較,依次類推,第 i 個(gè)字符與第 n-i個(gè)字符比較。如果每次比較都相等,則為回文,如果某次比較不相等,就不是回文。因此,可以把字符序列分別入隊(duì)列和棧,然后逐個(gè)出隊(duì)列和出棧并比較出隊(duì)列的字符和出棧的字符是否相等,若全部相等則該字符序列就是回文,否則就不是回文。
using System; using System.Collections.Generic; namespace 棧和隊(duì)列舉例 { 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#中棧和隊(duì)列的用法示例”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。