Swift에서의 주요 자료구조

임혜정·2024년 6월 7일
0

IOS 주요 자료구조의 종류

1. 배열 (Array)

물건을 차례대로 꽂는 것과 비슷하다. 순서를 가지므로 인덱스를 통해 요소에 빠르게 접근 가능하지만, 요소의 삽입과 삭제는 일이 커진다. 예를 들어 배열 중간에 새로운 요소를 추가할 때 그 뒤의 요소를 다 뒤로 밀어줘야한다. 중간에 요소를 삭제하는 것도 마찬가지다. 배열이 커질 수록 더 오래걸리고 복잡하다. 이걸 컴퓨터 과학에서는 "어허..시간 복잡도가 크군요.."라고 표현한다.

2. 연결 리스트 (Linked List)

각각의 물건이 다음 물건을 가리키며 관계성을 가지는 방식이다. 첫번째 물건을 찾으면 그 다음 종이가 무엇인지 쉽게 찾을 수 있다. 요소의 삽입과 삭제가 빠르지만, 인덱스를 통한 접근 속도는 느리다

3. 스택 (Stack)

후입선출(LIFO, Last In First Out). 나중에 넣은 물건이 먼저 나온다. 요소의 삽입과 삭제가 빠르며, 함수 호출 스택 등의 구현에 사용된다.

4. 큐 (Queue)

선입선출(FIFO, First In First Out). 요소의 삽입과 삭제가 빠르며, 작업 큐 등의 구현에 사용된다.

5. 해시 테이블 (Hash Table)

키-값 쌍을 저장하는 자료구조로, 해시 함수를 이용해 키를 인덱스로 변환하여 값을 저장한다. 평균적으로 빠른 검색, 삽입, 삭제 성능을 가진다.

6. 트리 (Tree)

계층적인 구조를 가지며, 각 노드가 자식 노드를 가질 수 있는 자료구조로서 검색, 삽입, 삭제가 빠르고 이진 탐색 트리, AVL 트리, 힙 등이 있다.

7. 그래프 (Graph)

노드와 노드 사이를 연결하는 간선으로 구성된 방식으로 다양한 네트워크 구조를 표현하는 데 사용되며, DFS, BFS 등의 탐색 알고리즘이 있다.

profile
오늘 배운걸 까먹었을 미래의 나에게..⭐️

0개의 댓글