WEB

Data Structure(자료 구조)란?

Made Project 2020. 4. 6. 15:04

자료 구조란 데이터에 편리하게 접근하고 조작하기 위한 데이터를 저장하거나 조직하는 방법입니다.

데이터를 효율적으로 저장, 관리하여 메모리를 효율적으로 사용하기 위함입니다. 적절한 자료구조의 사용은 메모리의 용량을 절약해주고, 실행시간을 단축시켜줄 수 있습니다.
-> 예를 들면, 특정 원소를 Search하거나 add할 때(..등), 자료구조마다 그 방식이 다르고, 따라서 사용하는 메모리의 양과 실행 소요 시간도 다릅니다.
그래서 Data마다(또는 수행하는 일마다) 적절한 자료구조가 다릅니다.

 

무엇보다 각 자료구조의 본질과 컨셉을 이해하고 상황에 맞는 적절한 자료 구조를 선택하는 것이 중요합니다.

 

데이터에 맞는 적절한 자료 구조를 사용하는 것은 전체 개발 시스템에 굉장히 큰 영향을 끼칩니다.

 

 

자료 구조의 분류

 

크게 단순구조와 비단순구조로 나누어집니다.

Primitive Data Structure(단순 구조) : 프로그래밍에서 사용되는 기본 데이터 타입

 

None-Primitive Data Structure(비단순 구조) : 단순한 데이터를 저장하는 구조가 아니라 여러 데이터를 목적에 맞게 효과적으로 저장하는 자료 구조

  • Linear Data Structure(선형 구조) : 저장되는 자료의 전후 관계가 1:1 (ex. List, Stacks, Queues)
  • Non-Linear Data Structure(비선형 구조) : 데이터 항목 사이의 관계가 1:n 또는 n:m (ex. Graphs, Trees )

 

 

 

이미지출처  https://lee-mandu.tistory.com/462

 

 

리스트

선형리스트 

연결 리스트(Linked List)

스택

큐(Queue)

데크

 

 

배열과 같이 연속되는 기억장소에 저장되는 리스트입니다.

가장 간단한 자료구조

 

  • Array(Python에서는 List)
  • Tuple
  • Set
  • Dictionary
  • Stack & Queue
  • Tree

 

 

 

 

자료 구조의 이용

 

정렬:기억장치 내의 자료를 일정한 순서의 의해 나열하는 것