개발 지식 기록/자료구조 2

큐(Queue)

하루에 하나씩 자료 구조를 정리하고 있다. 직접 써보면서 정리하는 것을 좋아하지만 손글씨가 매우 좋지 않아 오히려 가독성이 떨어지는 슬픈 상황ㅠㅠ 학창시절 필기했던 노트를 나중에 다시 봤을 때 알아보기 힘들었던 경험이 있기에 블로그로 적어본다. (애초에 인터넷에 있는 이미지들이 내 그림보다 고퀄리티다.) Queue 선입선출 (First In First Out; FiFO)의 자료구조. 먼저 들어온 데이터가 먼저 나간다. 자료가 나가는 부분을 Front, 자료가 들어오는 부분을 Rear(Back이라고도 한다) 입력동작을 Enqueue, 출력동작을 Dequeue라고 한다. 자바에서의 Queue 사용 // 선형 자료구조 - 큐 import java.util.LinkedList; import java.util.Q..

스택(Stack)

Stack 후입선출 (Last In First Out; LIFO) 자료구조로 마지막에 들어온 데이터가 먼저 나가는 구조이다. (First In Last Out;FILO 라고 하기도 함) 그림에서 확인할 수 있듯이 가장 마지막에 들어온 데이터가 먼저 나간다. (한글이나 엑셀 등의 되돌리기 기능과 유사하게 생각하면 될 듯 하다.) 구조의 밑을 Bottom이라고 하며, 메모리에 새로 데이터가 들어오고 나가는 위치가 Top. 데이터 입력 연산은 Push, 데이터 출력 연산은 Pop이라고 한다. 조회연산은 Peak라고 하는데 Top이 가리키는 데이터를 조회할 수 있다.(단순 조회일 뿐 데이터 변화 없다.) 자바에서의 Stack 사용 import java.util.Stack; public class Main { p..