Stack(棧)
堆棧(Stack)代表了一個(gè)后進(jìn)先出的對(duì)象集合。當(dāng)您需要對(duì)各項(xiàng)進(jìn)行后進(jìn)先出的訪問(wèn)時(shí)舵匾,則使用堆棧俊抵。當(dāng)您在列表中添加一項(xiàng),稱(chēng)為推入元素坐梯,當(dāng)您從列表中移除一項(xiàng)時(shí)徽诲,稱(chēng)為彈出元素。
- 方法
Clear();
從 Stack 中移除所有的元素吵血。
bool Contains( object obj );
判斷某個(gè)元素是否在 Stack 中谎替。
object Peek();
返回在 Stack 的頂部的對(duì)象,但不移除它蹋辅。
object Pop();
移除并返回在 Stack 的頂部的對(duì)象
Push( object obj );
向 Stack 的頂部添加一個(gè)對(duì)象钱贯。
object[] ToArray();
復(fù)制 Stack 到一個(gè)新的數(shù)組中
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 : 個(gè)數(shù)
Queue(隊(duì)列)
隊(duì)列(Queue)代表了一個(gè)先進(jìn)先出的對(duì)象集合。當(dāng)需要對(duì)各項(xiàng)進(jìn)行先進(jìn)先出的訪問(wèn)時(shí)侦另,則使用隊(duì)列秩命。當(dāng)您在列表中添加一項(xiàng),稱(chēng)為入隊(duì)褒傅,當(dāng)您從列表中移除一項(xiàng)時(shí)弃锐,稱(chēng)為出隊(duì)。
方法
Queue q = new Queue();
- 添加元素到結(jié)尾處
q.Enqueue("a");
q.Enqueue("b");
q.Enqueue("c");
- 個(gè)數(shù)
Console.WriteLine(q.Count);
- 遍歷
foreach (var item in q)
{
Console.WriteLine(item);
}
- 轉(zhuǎn)成數(shù)組
object[] objs = q.ToArray();
- 遍歷
for (int i = 0; i < objs.Length; i++)
{
Console.WriteLine(objs[i]);
}
- 是否包含元素
bool b = q.Contains("b");
Console.WriteLine(b);
// 移除開(kāi)始出的對(duì)象
string obj1 = (string)q.Dequeue();
Console.WriteLine("移除開(kāi)始出的對(duì)象"+obj1);
- 清空所有元素
q.Clear();