본문 바로가기
프로그래밍/C Sharp

[ C# ] 스택(Stack) 과 큐(Queue)

by jeong-f 2021. 11. 2.
반응형

데이터를 리스트에 넣는 방법 중 일반적인 리스트 배열이 아닌 사용 용도에 따라 앞 또는 뒤에서부터 데이터를 사용할 경우가 있습니다. 인덱스로 조회하는 방식에서 앞/뒤에서 데이터를 넣고 빼는 방법은 스택과 큐의 방식을 활용한 프로그램 기법을 사용하여 좀 더 깨끗하고 단순화된 프로그램을 구현할 수 있습니다.

스택(Stack)이란?

LIFO(Last-In-Last-Out)의 구조로 입력한 데이터가 가장 위에 쌓이고, 가장 위에서 데이터를 가져가는 방식이다.

(동전이 쌓인 경우 위에 넣고 위에서 빼는 방법을 가정하면 된다.)

*  사용 함수 *

1.  삽입 : Push

 빼낼 데이터 확인 : Peek (stack, queue 같음)

  빼냄 : Pop

static void Main(string[] args)
{  Stack<string> stack = new Stack<string>();
  stack.Push("1"); // Push: 1 삽입
  stack.Push("2"); // Push: 2 삽입
  stack.Push("3"); // Push: 3 삽입
  stack.Push("4"); // Push: 4 삽입

  string peek = stack.Peek(); // Peek: 다음에 빼낼 데이터 '조회'
  Console.WriteLine("Peek : " + peek);

  Console.WriteLine("stack : " + string.Join(",",stack.ToArray()));

  string pop = stack.Pop(); // Pop: 맨 마지막 데이터 '빼냄'
  Console.WriteLine("Pop : " + pop);

  Console.Write("stack : " + string.Join(",", stack.ToArray()));
}

/* 결과
Peek : 4
stack : 4,3,2,1
Pop : 4
stack : 3,2,1
*/

큐(Queue) 란?

FIFO(First-In-First-Out)의 구조로 입력한 데이터가 순서대로 쌓이고, 가장 처음 입력된 데이터를 가져가는 방식이다.

( 줄 서기처럼 빨리 온 순서대로 처리할 경우 이용한다.)

  •   사용 함수
  1.  삽입 : Enqueue
  2.  빼낼 데이터 확인 : Peek (stack, queue 같음)
  3.   빼냄 : Dequeue
static void Main(string[] args)
{
  Queue<string> queue = new Queue<string>();
  queue.Enqueue("1"); // Enqueue: 1 삽입
  queue.Enqueue("2"); // Enqueue: 2 삽입
  queue.Enqueue("3"); // Enqueue: 3 삽입
  queue.Enqueue("4"); // Enqueue: 4 삽입

  string peek = queue.Peek(); // Peek: 다음에 빼낼 데이터 '조회'
  Console.WriteLine("Peek : " + peek);

  Console.WriteLine("queue : " + string.Join(",", queue.ToArray()));

  string pop = queue.Dequeue(); // Dequeue: 맨 처음 데이터 '빼냄'
  Console.WriteLine("Pop : " + pop);

  Console.Write("queue : " + string.Join(",", queue.ToArray()));
}

/* 결과
Peek : 1
queue : 1,2,3,4
Pop : 1
queue : 2,3,4
*/

참고 사이트

 

[알고리즘] 스택(Stack), 큐(Queue)

알고리즘이란? 알고리즘(라틴어, 독일어: Algorithmus, 영어: algorithm 알고리듬[*], IPA: [ǽlɡərìðm])은 수학과 컴퓨터 과학, 언어학 또는 관련 분야에서 어떠한 문제를 해결하기 위해 정해진..

dev-note-97.tistory.com

 

TIL(20.03.19) DataStructure 스택과 큐

스택은 자료 구조의 종류 중의 하나로써 데이터를 아래에서 위로 쌓아가는 형식을 상상하면 된다.실생활의 예시로위와 같은 동전 보관함을 들 수 있다 각각의 동전을 데이터라고 생각하면 된다

velog.io

반응형

댓글