摘要:C#資料群集系列菜單-『Queue與Stack』
~哀悼~ 給予不幸的人。
~本文主題~
『Queue』
『Stack』
~正文開始~
『Queue』
前言
在某些時後,你需要運用程式,來對應出現實世界的狀況,例如
排隊買飲料的狀況,這種時候你就可以用Queue來描述。
Queue的定義
Queue是先進先出(first-in first-out)的群集,表示放進queue的第一個物件,
會是第一個拿出來使用的。
private void button1_Click(object sender, EventArgs e)
{
//建立Queue的物件 myqueue
Queue myqueue = new Queue< string>();
//新增資料進queue
myqueue.Enqueue( "我是頭香" );
myqueue.Enqueue( "我第二個" );
myqueue.Enqueue( "我第三個" );
//查看queue的所有資料
foreach (string queue in myqueue)
{
Console.WriteLine(queue.ToString());
}
//使用Peek()方法
//你可以查看queue裡的第一個資料。
Console.WriteLine("" );
Console.WriteLine("使用peek方法的輸出值:" + myqueue.Peek());
//使用Dequeue()方法從queue中拿出值
//記得,是先進先出的拿法。
Console.WriteLine("第一個被我拿走了:" + myqueue.Dequeue());
//看看剩下的值
Console.WriteLine("查看myqueue裡剩下的值" );
foreach (string queue in myqueue)
{
Console.WriteLine(queue.ToString());
}
//查看某位置的值
Console.WriteLine("查看特定位置的值" );
Console.WriteLine(myqueue.ElementAt(1));
}
1.建立queue物件
Queue myqueue = new Queue< string>();
其中<string>代表該queue 的型別,你也可以設其它型別或類別。
2.新增資料至queue裡
myqueue.Enqueue( "我是頭香" );
myqueue.Enqueue( "我第二個" );
myqueue.Enqueue( "我第三個" );
3.查看queue所有的資料
foreach (string queue in myqueue)
{
Console.WriteLine(queue.ToString());
}
4.Peek()方法查看queue的最前端資料
myqueue.Peek();
5.使用Dequeue()方法從queue中拿出值(取出的值就不見囉)
myqueue.Dequeue();
注意:queue是以先進先出的拿法
6.查看某位置的特定值
myqueue.ElementAt(1);
注意:(1)代表的是queue中的第二個索引喔,(0)才是第二個。
執行結果
『Stack』
前言
有Queue先進先出的方法外,C#當然也有後進先出法的群集
名叫Stack。
定義
Stack為後進先出法(first-in last-out)的群集,表示第一個進去的資料,
反而是最後一個出來的。
建立範例程式碼
private void button1_Click(object sender, EventArgs e)
{
//建立一個Stack物件
Stack mystack = new Stack< string>();
//新增資料
mystack.Push( "我是第一個進去的資料喔" );
mystack.Push( "我是第二個" );
mystack.Push( "我是第三個" );
//查看Stack資料
foreach (string stack in mystack)
{
Console.WriteLine(stack.ToString());
}
//Stack也有Peek方法可以查看第一個資料。
Console.WriteLine("" );
Console.WriteLine("Peek查看到的資料:" + mystack.Peek());
//使用pop方法取出資料
Console.WriteLine("被拿走囉:" + mystack.Pop());
Console.WriteLine("查看剩下的資料" );
//查看剩下的資料。
foreach (string stack in mystack)
{
Console.WriteLine(stack.ToString());
}
}
1.建立Stack物件
Stack mystack = new Stack();
其中<string>代表該Stack 的型別,你也可以設其它型別或類別。
2.新增資料至Stack裡
mystack.Push("我是第一個進去的資料喔");
mystack.Push( "我是第二個" );
mystack.Push( "我是第三個" );
3.查看Stack所有的資料