큐란? 큐(Queue)는 데이터를 일렬로 나열한 선형구조로 되어있다. 일시적으로 데이터를 저장하고 처리할 때 사용되며, 다양한 컴퓨터 애플리케이션에 사용된다. 나중에 들어간 데이터가 가장 먼저 나오는 스택과는 반대되는 개념이다. 큐의 특징 먼저 들어간 데이터가 먼저 나오는 선입선출(FIFO, First In First Out)구조로 이루어져있다. 큐가 꽉차서 데이터를 더 넣을 수 없는 상태를 오버플로우(Overflow), 큐가 비어있어서 더 꺼낼 수 없는 상황을 언더플로우(Underflow)라고 한다. 큐는 상황에 따라 배열을 사용해서 구현할 수도, 연결리스트를 이용해서 구현할 수도 있다. 큐의 연산은 삽입, 삭제, 맨 앞의 데이터 읽기, 큐가 비어있는지 확인, 큐의 사이즈 확인, 검색이 있다. 큐의 시..
스택이란? 스택은 프로그래밍에서 자주 쓰이는 자료구조 중 하나이다. 이름에서 알 수 있듯이 데이터를 쌓으며 사용하는 자료구조이다. 스택의 특징 스택은 나중에 넣은 값이 가장 먼저 나온다는 후입선출(LIFO, Last-In-First-Out) 형식의 선형 자료구조이다. 스택은 데이터를 한쪽으로만 넣을 수 있으며, 중간에 있는 데이터를 삭제할 수는 없다. 배열, 또는 연결리스트로 구현이 되어 구현하기 쉽다. 스택은 한정된 용량을 갖고있어, 저장 용량보다 초과하여 데이터를 저장할 경우 스택 오버플로우(Stack Overflow)가 발생한다. 함수 호출, 오류 발생 시 디버깅 역추적(Traceback) 할 때 도움을 준다. 스택의 연산은 삽입, 삭제, 읽기로 이루어진다. 시간복잡도 삽입(Push) 스택의 최상단..