본문 바로가기

자료구조4

List, Set, Map List, Set, Map Kotlin에는 컬렉션이라는 자료구조가 존재합니다. 컬렉션은 같은 타입의 여러 객체를 저장하고 관리하기 위해 설계된 자료구조입니다. 컬렉션에는 List, Set, Map이 존재하는데 이에 대해 알아보겠습니다. List List를 간단히 설명하자면 순서가 있는 자료구조입니다. 특징 포인터를 사용하여 다음 값의 주소를 가리켜 데이터가 순서대로 이어져 있습니다. index로도 접근 가능한데 이는 메모리상에 순서대로 있다는 것을 뜻하는 게 아니라 데이터의 순번을 의미합니다. element의 값으로 null을 넣을 수 없습니다. 구현 list에는 element의 추가와 변경이 불가능한 일반적인 list와 추가와 변경이 가능한 mutableList가 있습니다. val numbers = l.. 2023. 2. 20.
Array와 List 차이 Array와 List 차이 Array와 List의 차이를 알아보겠습니다. 각 자료구조의 자세한 설명은 https://kdgdev.tistory.com/8에 있습니다. 자 그런데 List에는 Linked List도 있고 Array List도 있죠? 전부 한번 알아볼게요 Array와 LinkedList 차이 둘의 대표적인 차이로는 시간복잡도, 할당되는 메모리의 차이가 있습니다. 시간복잡도 검색 Array O(1) 요소들을 index를 통해 곧바로 접근할 수 있는 랜덤 액세스 방식 LinkedList O(n) 어떤 요소를 접근할 때 순차적으로 검색하며 찾아야 하는 시퀀셜 액세스 방식 삽입/삭제 Array O(n) / 맨뒤에 데이터 O(1) 맨 뒤가 아닌 위치에 데이터의 삽입과 삭제가 일어날 때는 뒤에 데이터들.. 2023. 2. 18.
비선형 자료구조 자료구조 효율적으로 데이터를 관리하고 수정, 삭제, 탐색, 저장할 수 있는 데이터 집합 비선형 자료구조 자료가 비선형으로 저장되어 있는 자료구조입니다. 비선형 자료구조의 종류는 다음과 같습니다. 그래프 정점과 간선으로 이루어진 자료구조입니다. 정점과 정점 사이에는 간선이 존재할 수 있고 여기에 정점간 이동을 위한 비용인 가중치가 있을 수 있습니다. 그래프는 뒤에 말할 비선형 자료구조의 토대가되는 자료구조입니다. 따라서 고정된 시간복잡도는 없습니다. 트리 그래프 중 하나로 정점과 간선으로 이루어져 있고, 트리 구조로 배열된 계층적 데이터의 집합입니다. 위 그림과 같이 트리는 루트 노드, 내부 노드, 리프 노드로 이루어져 있고 노드의 규칙에 따라 종류가 나뉘어 집니다. 종류 이진 트리 어떤 노드가 있을 때 .. 2023. 2. 9.
선형 자료구조 자료구조 효율적으로 데이터를 관리하고 수정, 삭제, 탐색, 저장할 수 있는 데이터 집합 선형 자료구조 자료가 선형으로 저장되어 있는 자료구조입니다. 선형 자료구조의 종류는 다음과 같습니다. 배열 메모리의 연속적인 공간을 차지하는 자료구조입니다. 배열은 정적 배열과 동적 배열로 나누어집니다. 정적 배열 초기화와 동시에 크기가 결정되고 메모리의 스택 영역에 저장됩니다. 일반적으로 선언하는 배열은 정적 배열입니다. 동적 배열 런타임시 크기가 동적으로 정해지고 메모리의 힙 영역에 저장됩니다. 대표적으로 C와 C++에서 동적할당을 통해 배열을 생성하면 그것이 동적 배열입니다. 시간복잡도 검색: O(1) 인덱스로 접근가능하기 때문에 매우 빠릅니다. 삽입, 삭제: O(n) 배열의 5번째 위치에 삽입을 하고 싶다면 원.. 2023. 1. 28.