티스토리 뷰

자료구조란? 대량의 데이터를 효율적으로 관리할 수 있는 데이터의 구조(집합)를 뜻한다.

  자료구조의 특징

효율성
상황과 목적에 맞게 적절한 자료구조를 선택함으로써 효율적인 데이타 관리가 가능하다. 

추상화
복잡한 자료, 모듈, 시스템 등으로부터 핵심적인 개념만을 간추려 낸다.

재사용성
자료구조를 이용하여 데이터를 처리할 경우 해당 자료구조의 인터페이스만 이용하여 데이터를 처리하도록 함으로 모듈화가 가능하다.

 

 

 

  선형 구조

배열 (Arrays)
데이터를 나열하고, 각 데이터를 인덱스에 대응해주고 인덱스로 데이터를 접근할 수 있도록 구성된 데이터 구조
파이썬에서는 리스트 타입이 배열기능을 제공

  • 배열이 왜 필요할까?
    - 같은 종류의 데이터를 효율적으로 관리하기 위해 사용
    - 같은 종류의 데이터를 순차적으로 저장
  • 배열의 장점
    - 인덱스로 인한 빠른 접근 가능
  • 배열의 단점 
    - 미리 배열의 크기를 설정해줘야함으로 데이터를 추가하는것이 어렵다
    - 데이터를 삭제 할 경우, 뒤에 있는 데이터를 앞으로 당겨와야 하는 어려움이있다.

테크 (Deque)
양쪽에서 넣기와 빼기를 할 수 있는 일반화된 선형 구조이다.

스택 (Stack)
먼저 저장된 것이 꺼내어 쓸 때는 제일 나중에 나온다. 가장 나중에 저장된 것이 꺼내어 쓸 때는 가장 나중에 나온다.
데이터를 제한적으로 접근할 수 있는 구조
가장 나중에  쌓은 데이터를 가장 먼저 빼낼 수 있는 데이터 구조

  • 스택구조
    스택은 LIFO(Last-In, Fisrt-Out)또는 FILO(First-In, Last-Out)데이터 관리방식을 따름
  • 주요기능
    - push() : 데이터를 스택에 넣기
    - pop() : 데이터를 스택에서 꺼내기

큐 (Queue)
스택과 반대로 먼저 저장된 것이 제일 먼저 나온다. 가장 나중에 저장된 것이 꺼내어 쓸 때는 가장 나중에 나온다.
줄을 서는 행위와 유사하며 FIFO(First-In, First-Out)또는 LILO(Last-In, Last-Out) 방식.

  • 기본용어
    - Enqueue : 큐에 데이터를 넣는 기능
    - Dequeue : 큐에 데이터를 꺼내는 기능

연결 리스트 (Liked List)
노드를 단위로 한다. 노드는 데이터와 다음 노드를 가리키는 참조값으로 구성되어있다. 제일앞의 노드를 헤드(head), 제일 끝에 위치한 노드를 테일(tail)이라고 부른다.

  • 연결 리스트의 장점
    리스트 길이가 가변적이라 배열의 단점을 커버 할 수 있다.
  • 연결 리시트의 단점
    어떤 노드를 Search하거나 데이터를 변경할때 바로 찾아낼 수 없다.
  • 사용
    데이터가 자주 추가되거나 가변적으로 자주 변하게 될 프로그램이면 링크드리스트를 쓰는것이 좋고, 주로 데이터의 변경이나 탐색을 위한것이라면 배열을 쓰는것이 좋다.

 

  비선형 구조

트리 (Tree)
부모 자식 관계로 이어져 간다.

그래 (Graph)
단순히 노드(N, node)와 그 노드를 연결한 간선을 하나로 모아놓은 자료 구조. 즉, 연결되어 있는 객체간의 관계를 표현할 수 있는 자료구조이다.

'자료구조' 카테고리의 다른 글

자료구조 배열과 리스트에대해 더 알아보기  (0) 2021.03.31
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
총 방문자
오늘 방문
어제 방문