본문 바로가기

CS

자료구조의 종류와 차이점

  1. 배열(Array)
    • 일련의 요소를 연속된 메모리 공간에 저장하는 자료구조입니다.
    • 인덱스를 사용하여 빠른 요소 접근이 가능하며, 요소들은 순차적으로 저장됩니다.
    • 크기가 고정되어 있어 삽입 및 삭제가 오버헤드가 크고 비효율적일 수 있습니다.
  2. 연결 리스트(Linked List)
    • 노드들이 포인터로 서로 연결된 자료구조입니다.
    • 각 노드는 데이터와 다음 노드를 가리키는 포인터로 구성되어 있습니다.
    • 중간에 요소를 추가하거나 삭제하기 용이하지만, 임의의 위치에 빠르게 접근하는 것이 어려울 수 있습니다.
  3. 스택(Stack)
    • 후입선출(LIFO, Last In First Out) 구조를 가진 자료구조입니다.
    • 데이터를 넣는 작업을 푸시(push), 데이터를 꺼내는 작업을 팝(pop)이라고 합니다.
    • 함수 호출의 실행 순서, 역추적, 괄호 검사 등에 사용됩니다.
  4. 큐(Queue)
    • 선입선출(FIFO, First In First Out) 구조를 가진 자료구조입니다.
    • 데이터를 넣는 작업을 인큐(enqueue), 데이터를 꺼내는 작업을 디큐(dequeue)라고 합니다.
    • 프로세스 스케줄링, 네트워크 버퍼 등 다양한 분야에서 사용됩니다.
  5. 트리(Tree)
    • 계층적인 구조를 갖는 자료구조로, 루트 노드에서 시작하여 각 노드가 여러 자식 노드를 가질 수 있습니다.
    • 이진 트리(Binary Tree), 이진 탐색 트리(Binary Search Tree), 힙(Heap) 등이 트리의 종류입니다.
    • 데이터 검색, 정렬, 계층적 데이터 저장 등에 활용됩니다.
  6. 해시 테이블(Hash Table)
    • 키(key)와 값(value)으로 데이터를 저장하는 자료구조입니다.
    • 해시 함수를 사용하여 키를 해시로 변환하고, 그 해시를 인덱스로 이용하여 값을 저장하고 검색합니다.
    • 빠른 검색 속도를 가지며, 키-값 쌍의 저장과 검색이 매우 빠릅니다.
  7. 그래프(Graph)
    • 정점(Vertex)과 간선(Edge)으로 이루어진 자료구조입니다.
    • 네트워크, 지도, 소셜 네트워크 등의 관계를 표현하고 탐색하는 데 사용됩니다.
    • 방향성, 순환 여부에 따라 다양한 종류의 그래프가 있습니다.

각 자료구조는 데이터를 특정한 방식으로 조직화하여 적합한 상황에 사용됩니다. 선택한 자료구조는 데이터의 특성, 작업의 효율성, 메모리 사용 등을 고려하여 결정해야 합니다.

'CS' 카테고리의 다른 글

상속이란  (0) 2023.11.16
객체지향이란  (0) 2023.11.16
값 형식과 참조 형식의 차이점  (0) 2023.11.16
스택, 힙 메모리와 차이점  (0) 2023.11.16
선택 정렬과 버블 정렬  (0) 2023.11.16