본문 바로가기

IT 지식/자료구조2

[자료구조] 스택, 큐, 트리, 힙 스택 모든 원소들의 삽입과 삭제가 한쪽 끝에서만 이루어진다. 한쪽 끝에서 이루어지기에 가장 마지막에 입력된 원소가 가장 처음으로 제거된다. 즉, 후입선출 (LIFO, Last In First Out)이 이루어진다. 웹사이트 방문기록, 실행 취소, 함수 호출 등, 가장 마지막에 실행한 것을 가장 처음으로 가져와야 할 때 사용된다. 큐 한 쪽 끝에서는 삭제가, 다른 한 쪽에서는 삽입이 일어난다. 즉 삭제와 삽입이 되는 구간이 다르기 때문에 가장 먼저 삽입된 원소가 가장 처음 제거된다. 즉, 선입선출 (FIFO, First In First Out)이 이루어진다. 종류로는 선형 큐와 원형 큐가 있는데, 선형 큐는 정해진 사이즈의 끝에 도달하면 더 이상 추가가 불가능하지만 원형 큐는 가능하다. BFS 알고리즘, .. 2021. 4. 2.
[자료구조] 자바의 List, Set, Map 자바의 컬렉션은 크게 세 가지로 나뉜다. 리스트, 셋, 맵이 바로 그것들이다. List는 데이터를 순서에 맞게 일렬로 구성한다. 이로 인해 인덱스가 부여되고, 인덱스로 검색을 할 수 있기에 순서가 중요하다. 또한 중복을 허용한다. List의 클래스로 사용되는 대표적인 두 가지는 ArrayList와 LinkedList가 있다. ArrayList는 평범한 리스트라고 볼 수 있다. 단방향 포인터 구조이고, 순차적인 접근이 좋기 때문에 검색이 빠르다. LinkedList는 양방향 포인터 구조이기에 데이터의 삽입과 삭제가 빠르다. 단, 검색이 느린 경향이 있다. Set은 데이터의 중복을 허용하지 않으며 순서가 중요하지 않은 리스트이다. Set의 클래스로 사용되는 대표적인 세 가지는 HashSet, LinkedHa.. 2021. 4. 2.