C#資料群集系列菜單-『Queue與Stack』

摘要: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所有的資料

   foreach (string stack in mystack)
            {
                Console.WriteLine(stack.ToString());
            }

 

 

4.Peek()方法查看Stack的最前端資料

 mystack.Peek()

 

5.使用pop()方法從Stack中拿出值(取出的值就不見囉)

mystack.Pop();

 

注意:Stack是以後進先出的拿法
 
6.查看某位置的特定值

mystack.ElementAt(1);

 

注意:(1)代表的是queue中的第二個索引喔,(0)才是第二個。
 
執行結果

 

 

 



小弟才書學淺~請各位客官指教指教~~~

小弟日 : 你要知道自已不是帥哥,你才有可能變成帥哥 。