Stack與Queue
阿新 • • 發佈:2018-11-08
Stack(棧)
堆疊(Stack)代表了一個後進先出的物件集合。當您需要對各項進行後進先出的訪問時,則使用堆疊。當您在列表中新增一項,稱為推入元素,當您從列表中移除一項時,稱為彈出元素。
- 方法
Clear();
從 Stack 中移除所有的元素。
bool Contains( object obj );
判斷某個元素是否在 Stack 中。
object Peek();
返回在 Stack 的頂部的物件,但不移除它。
object Pop();
移除並返回在 Stack 的頂部的物件
Push( object obj );
向 Stack 的頂部新增一個物件。
object[] ToArray();
複製 Stack 到一個新的陣列中
Stack st = new Stack(); st.Push('A'); st.Push('M'); st.Push('G'); st.Push('W'); Console.WriteLine("Current stack: "); foreach (char c in st) { Console.Write(c + " "); } Console.WriteLine(); st.Push('V'); st.Push('H'); Console.WriteLine("The next poppable value in stack: {0}", st.Peek()); Console.WriteLine("Current stack: "); foreach (char c in st) { Console.Write(c + " "); } Console.WriteLine(); Console.WriteLine("Removing values "); st.Pop(); st.Pop(); st.Pop(); Console.WriteLine("Current stack: "); foreach (char c in st) { Console.Write(c + " "); }
- 屬性
count : 個數
Queue(佇列)
佇列(Queue)代表了一個先進先出的物件集合。當需要對各項進行先進先出的訪問時,則使用佇列。當您在列表中新增一項,稱為入隊,當您從列表中移除一項時,稱為出隊。
方法
Queue q = new Queue(); - 新增元素到結尾處 q.Enqueue("a"); q.Enqueue("b"); q.Enqueue("c"); - 個數 Console.WriteLine(q.Count); - 遍歷 foreach (var item in q) { Console.WriteLine(item); } - 轉成陣列 object[] objs = q.ToArray(); - 遍歷 for (int i = 0; i < objs.Length; i++) { Console.WriteLine(objs[i]); } - 是否包含元素 bool b = q.Contains("b"); Console.WriteLine(b); // 移除開始出的物件 string obj1 = (string)q.Dequeue(); Console.WriteLine("移除開始出的物件"+obj1); - 清空所有元素 q.Clear();