루리코딩 세상

선형 자료구조와 비선형 자료구조 본문

이론/자료구조

선형 자료구조와 비선형 자료구조

루리딩 2025. 6. 4. 22:06

선형 : 0~1부터 선으로 이어진 상태

데이터가 순차적으로 이어진 상태

 

종류 : 배열(Array), 연결 리스트(Linked List), 스택(Stack : First-In, First-Out; FIFO), 큐(Queue)

 

 

 

비선형 : 데이터 간 관계가 계층적 또는 망형으로 되어 있어서 일렬로 나열되지 않는 구조다.

(Non-linear Data Structures) 종류로는 트리(Tree)와 그래프(Graph)가 있다.

1. 트리 (Tree) 🌳

  • 정의: 계층 구조를 표현하는 자료구조.
  • 특징: 하나의 루트 노드(root)에서 여러 자식 노드(child)로 분기.
  • 종류:
    • 이진 트리 (Binary Tree): 노드당 최대 2개의 자식
    • 이진 탐색 트리 (BST): 왼쪽 < 루트 < 오른쪽
    • 힙 (Heap): 최소/최대 값을 빠르게 찾을 수 있게 구성된 트리
    • AVL 트리 / 레드-블랙 트리: 균형을 유지하는 트리

2. 그래프 (Graph) 🔗

    • 정의: 정점(Vertex)과 간선(Edge)으로 이루어진 구조.
    • 특징: 데이터 간 관계가 복잡하고 양방향/단방향 모두 가능.
    • 종류:
      • 무방향 그래프 / 유방향 그래프 (Undirected / Directed)
      • 가중치 그래프 (Weighted Graph)
      • 순환 / 비순환 그래프 (Cyclic / Acyclic)

 

✅ 선형 vs 비선형 자료구조 차이

  • 구분선형 자료구조비선형 자료구조
    구조 순차적 (1:1) 계층적 또는 복잡한 관계 (1:N, N:N)
    예시 배열, 연결리스트, 스택, 큐 트리, 그래프
    탐색 상대적으로 단순 복잡 (DFS, BFS 등 필요)
     
  • 자료를 찾고보니, 블랙보드나 AI를 만드는 형식, DirectX를 작성하는 자료구조는 비선형에 가까운 듯 하다.