이번 포스트에서는 선형 데이터 구조와 비선형 데이터 구조의 차이점에 대해 알아보겠습니다.
선형 데이터 구조
-
이러한 구조의 요소는 순차적으로 배열됩니다.
-
모든 요소는 선형 구조를 통과하여 액세스할 수 있습니다.
-
선형 구조의 모든 요소는 단일 수준에 있습니다. 즉 계층 구조가 없습니다.
-
구현 및 사용이 간편합니다.
-
더 많은 메모리를 사용하므로 메모리 친화적이지 않습니다.
-
선형 데이터 구조의 시간 복잡도는 일반적으로 구조의 크기가 커질수록 증가합니다.
-
예에는 목록, 배열, 스택이 포함됩니다.
아래는 Python에서 목록의 예를 보여줍니다.
my_list = [45, 42, 12, 34, 56, 7] print(my_list)
출력
[45, 42, 12, 34, 56, 7]
비선형 데이터 구조
-
요소는 계층적 방식으로 저장됩니다.
-
'노드'를 사용하여 서로 연결됩니다.
-
이 구조의 요소는 단일 수준이 아니라 다른 수준에 있습니다.
-
구현이 쉽지 않습니다.
-
쉽게 탐색할 수 없습니다. 비선형 데이터 구조를 완전히 탐색하려면 여러 번 반복해야 합니다.
-
메모리 친화적입니다. 즉, 메모리를 효율적으로 사용합니다.
-
비선형 데이터 구조의 시간 복잡도는 데이터의 크기가 커도 동일합니다.
-
예:지도, 트리, 그래프
아래의 예는 그래프가 어떻게 정의되는지 보여줍니다. 이것은 노드 상호 연결도 정의되어야 함을 나타냅니다.
예시
graph = {'A': ['B', 'C'], 'B': ['C'], 'C': ['D', 'E'], 'D': ['C'], 'E': ['F', 'G'], 'F': ['C']}