C#

[길찾기 알고리즘] 2. 그래프 (1) Stack & Queue

binary는 호남선 2024. 11. 19. 22:05

- using System.Collections.Generic; 추가

Stack

- 후입선출

- LIFO(Last In First Out)

 

[ 함수 ]

- Push : Stack에 값을 저장

- Pop : Stack에서 값을 삭제

- Peek : Stack 최상단의 값을 확인

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

stack.Push(101);
stack.Push(102);
stack.Push(103);
stack.Push(104);
stack.Push(105);

// 빈 stack에 pop이나 peek하면 에러
if (stack.Count > 0)
{
    int data = stack.Pop();     // 105
    int data2 = stack.Peek();   // 104
}

Queue

- 선입선출

- FIFO(First In First Out)

 

[ 함수 ]

- Enqueue : queue에 값을 저장

- Dequeue : queue에서 값을 삭제

- Peek : queue 최상단의 값을 확인

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

queue.Enqueue(101);
queue.Enqueue(102);
queue.Enqueue(103);
queue.Enqueue(104);
queue.Enqueue(105);

if (queue.Count > 0)
{
    int data = queue.Dequeue(); // 101;
    int data2 = queue.Peek();   // 102;
}

LinkedList

- Stack과 Queue로 구현 가능

LinkedList<int> list = new LinkedList<int>();

// stack에서의 push
// queue에서의 enqueue
list.AddLast(101);
list.AddLast(102);
list.AddLast(103);

// stack
int value1 = list.Last.Value;  // peek
list.RemoveLast();             // pop

// queue
int value2 = list.First.Value;  // peek
list.RemoveFirst();             // dequeue

// dequeue와 queue의 peek은 시간 복잡도 O(n)

내용 출처 : Inflearn Rookiss님 강의 [C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘

https://www.inflearn.com/course/%EC%9C%A0%EB%8B%88%ED%8B%B0-mmorpg-%EA%B0%9C%EB%B0%9C-part2