NOW OR NEVER

자료구조의 종류 본문

Algorithm

자료구조의 종류

LAURA 2022. 2. 16. 21:27
반응형

자료구조

  • 메모리를 효율적으로 사용하며 빠르고 안정적으로 데이터를 처리하는 것이 궁극적인 목표로 상황에 따라 유용하게 사용될 수 있도록 특정 구조를 이루고 있다. 특성 상황에 유용하다는 것은 역으로 잘못 사용할 경우 메모리를 비효율적이며 느리고 불안정적으로 데이터를 처리할 수 있다는 것이다.
  • 전산화 작업 예시(현실에 존재하는 영화 예매를 어떻게 컴퓨터로 옮길까?)
    • 소프트웨어 개발자가 하는 일은 거의 전산화 작업이다.
    • 현실에서 수행되는 프로세스: 고객은 어떤 영화를 볼지 고른다 -> 고객은 영화를 예매하기 위해 줄을 선다 -> 고객은 차례가 왔을 때 좌석을 선택한다. -> 고객은 최종적으로 돈을 지불한다.
    • 위 프로세스를 소프트웨어에서 어떻게 처리하는가
      • 영화 검색 : 빠르게 검색하고 자동완성 기능을 제공하기 위해 Trie 구조 이용
      • 고객이 많을 경우 줄을 서야한다 : 소프트웨어 세상 속에서도 줄을 서야 한다. 실제로 소프트웨어가 죽을 수도 있으니 Queue를 이용하여 접속자 수를 제한한다.
      • 고객은 좌석을 선택할 수 있어야 한다 : 미리 등록해놓은 좌석을 HashTable을 이용하여 구성
  • 결국 자료구조는 일차원인 컴퓨터 메모리를 현실에 대응되도록 구조를 만든 것이라 할 수 있다.
  • HashTable 해시테이블 : 학생 때 사용하던 사물함

자료구조의 종류

  • 단순구조: 정수, 실수, 문자열, 논리 자료형 등
  • 선형 구조 : 배열, 연결리스트, 스택, 큐 등
  • 비선형 구조 : 트리, 그래프 등

선형구조

  • 한 원소 뒤에 하나의 원소 만이 존재하는 형태로 자료들이 선형으로 나열되어 있는 구조를 가진다.
  • 선형구조에 해당되는 구조는 Array 배열, Linked List 연결 리스트, Stack 스택, Queue 큐 등이 있다.
  • Queue 큐 : 줄서기에 비유 가능비선형 구조
  • 선형 구조와 다르게 원소 간 다대다 관계를 가지는 구조로 계층적 구조나 망형 구조를 표현하기에 적절하다. 그래서 컴퓨터 폴더 구조, 인간관계를 표현하는 데 적합하다.
  • 비선형 구조에 해당되는 자료구조는 트리와 그래프 등이 있다.

완벽한 자료구조는 없다

  • 더 좋고 더 나쁜 자료구조는 없다,
  • 특정 상황에서 유용한 자료구조와 덜 유용한 자료구조가 존재할 뿐이다.
  • 상황에 맞게 적절한 자료구조를 선택해야 한다.

'Algorithm' 카테고리의 다른 글

시간 복잡도  (0) 2022.02.21
자료구조와 알고리즘이란?  (0) 2022.02.15
Comments