자료구조 기본 개념

2023. 4. 13. 20:29·📚 Data Architect/Data Structure

💡 자료 구조

여러 데이터들의 묶음을 저장하고 사용하는 방법을 정의한 것

자료의 집합, 각 원소들 사이의 관계가 논리적 정의된 일정한 규칙에 의하여 나열되며,
자료처리의 효율성을 위해 조직&체계적으로 구분하여 표현한 것
(알고리즘 테스트 시 자주 등장하는 Stack,Queue,Tree,Graph 등)


자료구조의 경계 조건

  1. 자료 구조가 비어있는 경우
  2. 자료 구조에 단 하나의 요소가 들어있을 때
  3. 자료 구조의 첫 번째 요소를 제거하거나 추가할 때
  4. 자료 구조의 마지막 요소를 제거하거나 추가할 때
  5. 자료 구조의 중간 부분을 처리할 때

img


학습 포인트

  • 각 자료구조가 가진 특징
  • 각 자료구조를 사용하기 적합한 상황 판단
  • 다른 구조와의 차이점을 이해하기 위해 자료구조 내부 직접구현
  • 구현 시, 동작원리 이해하기

자료구조를 배워야 하는 이유

  • 상황에 맞는 가장 적합한 자료구조를 이용하여 문제를 빠르고 정확하게 해결
  • 자료구조의 내부를 이해하면 엉뚱한 라이브러리를 선택하는 일을 피할수 있다
  • 알고리즘이 데이터를 효율적으로 사용할 수 있게 도와주는 핵심 부품 역할

구조

  • 단순 자료구조
    • 프로그래밍 언어에서 통상적으로 제공하는 기본 데이터 형식
  • 복합 자료구조
    • 선형 자료구조
      • 데이터 요소를 순차적으로 연결, 구현 & 사용이 쉽다
      • Array, LinkedList, Stack, Queue 등이 해당됨
    • 비선형 자료구조
      • 데이터 요스를 비순차적으로 연결
      • 한 요소에서 여러 요소로 연결되기도 하고, 여러 요소가 하나의 요소로 연결되기도 함
      • Tree, Gragh가 해당됨

ADT란? (Abstract Data Types)

  • 자료구조의 동작방법을 표현하는 데이터 형식, 즉 자료구조가 갖춰야할 일련의 연산이다.
  • ADT는 개념을 제시하고 자료구조는 구현을 포함함

img


자료구조의 형태

img

img

img

img

저작자표시 (새창열림)

'📚 Data Architect > Data Structure' 카테고리의 다른 글

Stack  (0) 2023.04.13
Doubly Linked List & Circular Linked List  (0) 2023.04.13
Singly Linked List (단순 연결 리스트)  (0) 2023.04.13
Iterator  (0) 2023.04.13
Time Complexity (시간 복잡도 - Big O Notation)  (0) 2023.04.13
'📚 Data Architect/Data Structure' 카테고리의 다른 글
  • Doubly Linked List & Circular Linked List
  • Singly Linked List (단순 연결 리스트)
  • Iterator
  • Time Complexity (시간 복잡도 - Big O Notation)
신건우
신건우
조용한 개발자
  • 신건우
    우주먼지
    신건우
  • 전체
    오늘
    어제
    • 분류 전체보기 (422)
      • 📘 Frontend (71)
        • Markup (1)
        • Style Sheet (2)
        • Dart (8)
        • Javascript (12)
        • TypeScript (1)
        • Vue (36)
        • React (2)
        • Flutter (9)
      • 📘 Backend (143)
        • Java (34)
        • Concurrency (19)
        • Reflection (1)
        • Kotlin (29)
        • Python (1)
        • Spring (42)
        • Spring Cloud (5)
        • Message Broker (5)
        • Streaming (2)
        • 기능 개발 (5)
      • 💻 Server (6)
        • Linux (6)
      • ❌ Error Handling (11)
      • 📦 Database (62)
        • SQL (31)
        • NoSQL (2)
        • JPQL (9)
        • QueryDSL (12)
        • Basic (4)
        • Firebase (4)
      • ⚙️ Ops (57)
        • CS (6)
        • AWS (9)
        • Docker (8)
        • Kubernetes (13)
        • MSA (1)
        • CI & CD (20)
      • 📚 Data Architect (48)
        • Data Structure (10)
        • Algorithm (8)
        • Programmers (17)
        • BaekJoon (5)
        • CodeUp (4)
        • Design Pattern (4)
        • AI (0)
      • ⚒️ Management & Tool (8)
        • Git (7)
        • IntelliJ (1)
      • 📄 Document (10)
        • Project 설계 (6)
        • Server Migration (3)
      • 📄 책읽기 (2)
        • 시작하세요! 도커 & 쿠버네티스 (2)
      • 🎮 Game (4)
        • Stardew Vally (1)
        • Path of Exile (3)
  • 블로그 메뉴

    • 링크

      • Github
    • 공지사항

    • 인기 글

    • 태그

      React #Markdown
      GStreamer #Pipeline
      Lock #Thread #Concurrency
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.0
    신건우
    자료구조 기본 개념
    상단으로

    티스토리툴바