승쨩개발공부

[DS] 스택(Stack) / 큐(Queue) 본문

Algorithm & Data Structure/Data Structure

[DS] 스택(Stack) / 큐(Queue)

Unknowns 2024. 12. 30. 02:39

스택(Stack)

Stack이란 자료구조는 규칙이 다음과 같다.

1. 저장 : 항상 위에만 저장한다.

2. 읽기 : 항상 제일 위에 있는 데이터만 읽을 수 있다.

3. 삭제 : 항상 제일 위에 있는 데이터만 삭제 할 수 있다.

 

STACK은 위 규칙을 가진 전용 자료구조 이고 배열을 이용해서 구현해도 좋고

또는 LIST 를 이용해서 구현해도 좋다. 구현 방벙은 개발자의 자유다.

 

데이터 방식 : LIFO(Last In First Out) 후입 선출

마지막에 들어온 데이터가 먼저 나간다.

 

게임에서의 활용 : 역순으로 객체나 이벤트를 처리해야 할 떄 유용하다.

UI같은거 유용함.

 

리스트 기반 스택

 

코드

첫번쨰 Push의 Next는 m_Head = null이다

 

 

그림설명

 

 

 

큐(Queue)

스택과 비슷한 자료구조이며 현업에서 굉장히 많이 사용된다.

여러 함수에서 신호들이 한꺼번에 들어오면, 순차 처리를 위한 대기열 용도로 사용된다.

 

데이터 방식 : FIFO(First In First Out) 선입 선출

먼저 들어온 데이터가 먼저 나간다.

 

게임에서의 활용 : 순서대로 객체나 이벤트를 처리해야 할 떄 유용하다.

대기열,채팅, 등 무궁무진함.

 

 

리스트 기반 큐

 

코드

 

 

그림설명

 

 

 

리스트 기반 스택과 큐

스택은 LIFO구조이고

큐는    FIFO구조이다

주소값을 LIFO식으로 가지게할지 FIFO식으로 가지게할지 고려하면

쉽게 스택과 큐를 구현할수 있다