์ž๋ฃŒ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜/์ž๋ฃŒ๊ตฌ์กฐ

C# Queue์™€ Stack ํŠน์„ฑ์„ LinkedList๋กœ ๊ทธ๋Œ€๋กœ ๊ตฌํ˜„

Rainbow๐ŸŒˆCoder 2022. 1. 25. 20:00
728x90

Queue์™€ Stack์€ LinkedList์˜ ์ถ•์†ŒํŒ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

(์„ ์ž…์„ ์ถœ, ํ›„์ž…์„ ์ถœ ๋งŒ์„ ๊ตฌํ˜„ํ•  ๋•Œ, ํ์™€ ์Šคํƒ์ด ํ›จ์”ฌ ์ง๊ด€์ ์ž„.)

 

list์˜ ๊ฒฝ์šฐ์—๋Š” stack์„ ๊ตฌํ˜„ํ•˜๋Š”๋ฐ ์–ด๋ ค์›€์ด ์—†์œผ๋‚˜, queue ๊ตฌํ˜„์—๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค. 

๊ฐ€์žฅ ์•ž ์›์†Œ๋ฅผ ์ง€์šฐ๊ณ  ๋‚˜๋ฉด ๋’ค์— ์Œ“์ธ ์›์†Œ๋“ค์„ ํ•œ์นธ์”ฉ ์•ž์œผ๋กœ ๋ฏธ๋ค„์•ผํ•˜๋Š”(์ด์‚ฌ์‹œ์ผœ์ค˜์•ผํ•˜๋Š”) ์ž‘์—…์„ ์ถ”๊ฐ€ํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ!

 

๊ฒŒ์ž„์—์„œ Stack์€ UI๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ ์‘์šฉ๊ฐ€๋Šฅํ•˜๋‹ค.

๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์— ๋œฌ UI ์ฐฝ๋ถ€ํ„ฐ ์‚ฌ๋ผ์ง€๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ!

 

queue ๊ฐ™์€ ๊ฒฝ์šฐ๋Š” ๋„คํŠธ์›Œํฌ ์ƒ ์—ฌ๋Ÿฌ๋ช…์˜ ์œ ์ €๊ฐ€ ํ•œ ๋ชฌ์Šคํ„ฐ๋ฅผ ํƒ€๊ฒŸํ•œ๋‹ค๊ณ  ํ–ˆ์„ ๋•Œ

๊ฐ€์žฅ ๋จผ์ € ๋•Œ๋ฆฐ ์œ ์ €์˜ ํƒ€๊ฒฉ๋ถ€ํ„ฐ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋„๋ก

ํƒ€๊ฒฉ๊ฐ’์„ ์ค„์„ธ์šฐ๊ธฐ ์‹œํ‚ฌ ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค. 

 

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            Stack<int> stack = new Stack<int>();
            stack.Push(101);
            stack.Push(102);
            stack.Push(103);
            stack.Push(104);
            stack.Push(105);

            if (stack.Count > 0)
            {
                int data1 = stack.Pop();
            }
            int data2 = stack.Peek();
            Queue<int> queue = new Queue<int>();
            queue.Enqueue(101);
            queue.Enqueue(102);
            queue.Enqueue(103);
            queue.Enqueue(104);

            int data3 = queue.Dequeue();
            int data4 = queue.Peek();

            LinkedList<int> list = new LinkedList<int>();
            list.AddLast(101);
            list.AddLast(102);
            list.AddLast(103);

            //FIFO
            int value1 = list.First.Value; // ๋งˆ์น˜ queue์—์„œ Peek()ํ•˜๋“ฏ
            list.RemoveFirst();//๋งˆ์น˜ queue์—์„œ ์„ ์ž… ์„ ์ถœํ•˜๋“ฏ

            //LIFO
            int value2 = list.Last.Value; // ๋งˆ์น˜ stack์—์„œ Peek()ํ•˜๋“ฏ
            list.RemoveLast();//๋งˆ์น˜ stack์—์„œ ํ›„์ž…์„ ์ถœํ•˜๋“ฏ
        }
    }
}

 

 

 Queue : C#๊ณผ C++ ๋น„๊ต

๋น„๊ณ  C# C++
์‚ฝ์ž… Enqueue push
์‚ญ์ œ Dequeue pop
์ œ์ผ ์•ž ์›์†Œ ํ™•์ธ Peek() front()

 

728x90