[자료구조] 스택(Stack)과 큐(Queue)
·
자료구조
스택(Stack)스택(Stack)은 후입선출(LIFO, Last In First Out) 방식의 자료구조이다. 가장 마지막에 저장된 데이터가 가장 먼저 꺼내지는 형태이다. 주요 연산Push()스택의 맨 위에 새로운 요소 추가Pop()스택의 맨 위에 있는 요소  반환 및 삭제Peek()스택의 맨 위에있는 요소  반환 사용처웹 브라우저 '뒤로가기' 기능메모리 영역의 스택 영역에 사용문자열 뒤집기 등 큐(Queue)큐(Queue)는 선입선출(FIFO, First In First Out) 방식의 자료구조이다.가장 먼저 저장된 데이터가 가장 먼저 꺼내지는 형태이다. 주요 연산offer()큐의 맨 뒤에 요소  추가, 성공 시 true 반환. / 큐가 가득찬 상태라면 false 반환add()큐의 맨 뒤에 요소  추가..
[자료구조] 선형 구조(Linear Structure)와 비선형 구조(Non-Linear)
·
자료구조
선형 구조(Linear Structure)데이터 요소들을 순차적으로 나열시킨 형태이며, 데이터간에 순서가 있고 논리적으로 연결되어있는 구조이다.대표적으로 Array, LinkedList, Queue, Stack, Deque이 있다. 비선형 구조(Non-Linear) 데이터 요소가 일렬로 배치되지 않은 자료구조로 데이터가 계층적으로 구성된 경우 사용된다.대표적으로 Tree와 Graph가 있다.
[자료구조] Array(배열)와 LinkedList
·
자료구조
Array (배열)Array란 데이터를 순차적으로 저장하는 자료구조이다. 장점0부터 시작하는 Index를 이용하여 특정 요소에 접근 및 조작 가능하며, 순차적으로 접근하는 것이 아닌 우리가 원하는 인덱스에 바로 접근 가능하므로 시간복잡도 0(1)이 된다. 단점배열 중간에서 삽입이나 삭제가 이루어질 경우 모든 요소를 한칸 앞당기거나 밀어야하므로 시간복잡도 0(n) 소요되며, 배열의 크기는 고정적이기 때문에 배열의 크기를 예측하기 어려운 경우 메모리 낭비가 발생할 수 있다. LinkedList각 노드가 데이터와 포인터를 가지고 한줄로 연결되어 있는 방식으로 데이터를 저장하는 자료구조이다. 장점데이터 삽입 시 기존 노드의 연결을 끊고 새로운 노드에 연결시켜주면되고, 삭제 시에도 기존 노드의 연결을 끊고 다음 ..