스택은 LIFO(Last-In, First-Out) 방식으로 데이터를 저장하고 관리하는 자료구조이다. 스택은 데이터를 쌓아 올리는 것처럼 가장 최근에 추가된 데이터가 가장 먼저 꺼내지는 특징이 있다.
C#에서 스택은 Stack<T> 클래스로 제공되며, 다양한 데이터 유형을 저장할 수 있다. 스택은 함수 호출, 연산자 우선순위 처리, 되돌리기/다시 실행 기능 등 다양한 분야에서 사용된다.
큐는 FIFO(First-In, First-Out) 방식으로 데이터를 저장하고 관리하는 자료구조이다. 큐는 데이터를 쌓아 올리는 것처럼 가장 먼저 추가된 데이터가 가장 먼저 꺼내지는 특징이 있다. 데이터는 큐의 맨 뒤에 추가되고, 맨 앞에서 삭제된다. 큐는 데이터를 순서대로 처리해야 하는 경우에 유용하다. 예를 들어, 프린터 큐, 작업 스케줄러, 웹 서버의 요청 처리 등에서 사용된다.
사용할 공간을 미리 생성한다.
사이즈가 elements의 길이보다 크거나 같으면 큐에 있는 메모리가 초과된것이므로 데이터를 추가하지 않고 리턴한다.
사이즈가 0보다 작거나 같으면 비어있는 queue이다.
그게 아니라면 elements의 첫번째 항목을 가져오고 elements를 지우면 메모리 할당이 일어나므로 head를 증가함으로써 기존 메모리에 접근을 제어한다.
스택도 큐랑 비슷하다.
미리 공간을 할당하고 tail이 elements의 길이보다 크면 메모리 초과가 된것이므로 리턴을 하고 그게 아니라면 값을 추가하고 tail값을 1 증가시킨다.
tail이 0보다 작으면 스택이 비어있는 것이다. 스택의 마지막 항목을 가져오고 tail값을 1 감소시킨다. 스택은 후입선출이므로 늦게 들어온 값이 먼저 나간다. 따라서 tail에 있는 항목이 리턴되고 그 다음으로 늦게 들어온 항목이 tail이 된다.
'개인 공부 > C#' 카테고리의 다른 글
헥사곤 좌표계 (1) | 2025.09.30 |
---|---|
연결 리스트 (Linked List) (1) | 2024.07.26 |
델리게이트(delegate)와 이벤트 (event) (1) | 2024.07.26 |
추상 클래스 (0) | 2024.07.26 |
튜플 (0) | 2024.07.25 |