본문 바로가기

8주차2

자료구조 배열 리스트 (ArrayList) 자바로 구현 1. 개요 자료구조인 배열 리스트를 자바로 구현하고, 메소드별 시간복잡도를 확인해본다. 우선 배열 리스트의 장단점을, 연결 리스트와 비교하며 확인해보자 장점 배열로 구현되어 있으므로, 인덱스 번호로 접근이 가능하고, 탐색시간이 아주 짧다. (연결 리스트의 경우, 원하는 데이터를 찾을 때까지, 포인터를 타고 이동하면서 찾아야 한다.) 단점 생성할 때, 크기를 정하고 생성해야 하는데, 크기가 작으면 데이터가 꽉 찼을 때, 다시 생성해줘야 하고, 크기가 크면 남는 공간만큼 메모리의 낭비가 생긴다 효율적으로 관리하기 위해, 연속적으로 데이터를 넣어줘야 하는데, 데이터의 추가와 삭제가 있을 경우, 데이터를 밀고 당겨야 하는 작업이 필요하고, 시간이 오래 걸린다. (배열의 크기가 50이고, 40개의 데이터가 차있다.. 2022. 2. 13.
자료구조 연결 리스트(Linked List) 자바로 구현 1. 개요 연결 리스트는 데이터를 노드에 담아, 포인터로 연결해서 사용하는 자료구조다. Ex) 첫번째 노드의 포인터로 두번째 데이터를 찾을 수 있다. 두번째 노드의 포인터로 세번째 데이터를 찾을 수 있다. 그리고 연결 리스트는 배열 리스트와 다른 장단점이 있다. 장점 메모리 효율성이 좋다. (배열 리스트는 배열의 크기를 선언해야 생성할 수 있다. 연결 리스트는 데이터의 숫자만큼만 메모리를 사용하면 되니, 메모리의 낭비가 적다.) 포인터를 통해, 노드들이 연결되어 있으니 추가, 삭제가 용이하다. (포인터로 이어져 있으니 포인터만 수정해주면 된다.) 단점 원하는 데이터가 들어간 노드를 찾을 때까지, 포인터로 계속 탐색해야 하니 탐색 시간이 오래 걸린다 우선 이 LinkedList는 Head 노드를 더미로 한.. 2022. 2. 13.