자료구조 with C#

스택(Stack)과 큐(Queue)

코다람쥐 2022. 1. 28. 12:16

1. 스택(Stack)

스택(Stack) 특징

LIFO(후입선출 Last in First Out) : 나중에 들어온 데이터가 먼저 나간다.

 

네임스페이스 선언

using System.Collections.Generic;

 

스택 사용방법

            Stack<int> stack = new Stack<int>();

            stack.Push(10); // 첫 데이터
            stack.Push(11);
            stack.Push(12); // 마지막 데이터

            int data = stack.Pop(); // 변수에 12를 반환되고 12를 삭제
            int data2 = stack.Peek(); // 스택의 마지막 값인 11를 출력

Push : 마지막 공간에 데이터 추가

Pop : 마지막에 들어온 데이터 삭제 (후입선출)

Peek : 마지막 데이터 엿보기

 

주의할 점

스택에 데이터가 없으면 pop과 peek을 사용했을 때 오류가 발생한다.

if(stack.Count > 0)

if문을 이용하여 해결가능

 

 

 2. 큐(Queue)

큐(Queue) 특징

FIFO(선입선출 First in First out) : 먼저 들어온 데이터가 먼저 나간다.

 

네임스페이스 선언

using System.Collections.Generic;

 

큐 사용방법

            Queue<int> quque = new Queue<int>();

            quque.Enqueue(10); // 첫 데이터
            quque.Enqueue(11);
            quque.Enqueue(12); // 마지막 데이터

            int data = quque.Dequeue(); // 변수에 10을 반환하고 10을 삭제
            int data2 = quque.Peek(); // 큐의 첫 번째 값인 11을 출력

Enqueue : 마지막 공간에 데이터 추가

Dequque : 첫 번째 데이터 삭제(선입선출)

Peek : 첫 번째 데이터 엿보기