Computer Science/Data Structure 2

CS) 스택 / 큐

스택(Stack) 스택은 입력과 출력이 한 방향으로 제한되어 있습니다. 다른 말로는 "LIFO(Last In First Out, 후입선출) : 가장 마지막에 들어간 것이 가장 먼저 나옴" 이라고도 합니다. 스택은 책상위에 동전을 쌓는다!라고 생각하셔도 됩니다. 동전을 5개 쌓아올렸고 다시 원래대로 돌리려면 가장 위에있는(Last In) 동전부터 다시 책상에 내려놓아야겠죠(First Out)? 스택은 언제 사용할까요? 함수의 콜스택, 문자열 역순 출력, 연산자 후위표기법에서 사용됩니다. 큐(Queue) 큐는 입력과 출력을 양쪽 끝으로 제한합니다(Front, Rear) 그렇기 때문에 스택과 반대로 "FIFO(First In First Out, 선입선출) : 가장 먼저 들어온 것이 가장 먼저 나옴" 입니다. ..

CS) Array / ArrayList / LinkedList

Array, ArrayList, LinkedList 뭐가 다른지 알고 계신가요? Array? ArrayList? LinkedList? 다 비슷한 말 인 것 같은데 어떤 점이 다른걸까요? Array index로 빠르게 값을 찾을 수 있다 Array List 데이터를 빠르게 찾을 순 있지만, 삽입 & 삭제가 느리다 Linked List 데이터의 삽입 & 삭제가 빠르다 좀 더 자세히 알아볼까요? Array(배열) 배열은 선언 시에 크기와 데이터 타입을 지정해주어야 합니다. 이처럼, Array(배열)은 메모리 공간에 할당할 사이즈를 미리 정해놓고 사용하는 자료구조입니다. 이러한 특성 때문에 데이터의 갯수가 지속적으로 늘어날 때, 혹은 최대 사이즈를 알 수 없을 때에는 사용하기에 부적합합니다. 뿐만 아니라, 만약..