반응형
📖 자료구조의 정의
가령 마트에서 장을 본다고 생각해봅시다.
자료 = 마트 내의 상품들
구조 = 카테고리에 따라 상품 진열
마트에서 필요한 물품들을 찾을 때 상품들이 뒤죽박죽이라면 원하는 것을 찾을 수 있을까요?
어떠한 분류로 상품들이 진열되었을 때 원하는 물건을 가장 빠르게 찾을 수 있을까요?
컴퓨터 과학에서도 마찬가지로 효율적인 접근 및 수정을 가능케 하는 자료의 조직, 관리, 저장을 자료구조라고 합니다.
적절한 자료구조를 적용했을 때 자료를 더 효율적으로 저장하고 관리하며 실행시간 단축 및 메모리 용량의 절약을 이끌어 낼 수 있습니다.
📝 자료구조의 선택 기준
- 자료의 처리시간
- 자료의 크기
- 자료의 활용 빈도
- 자료의 갱신 정도
- 프로그램의 용이성
🔎 자료구조의 특징
1. 효율성
자료구조를 사용하는 목적은 데이터를 목적에 맞게 효율적으로 관리 및 사용하는 것입니다.
적절한 자료구조를 선택하여 사용한다면 코드의 효율이 올라갈 것입니다.
2. 추상화
추상화란 복잡한 자료, 모듈, 시스템 등으로부터 핵심적인 개념만을 간추려 내는 것입니다.
자료구조를 구현할 때 중요한 것은 어느 시점에 데이터를 삽입할 것이며,
어느 시점에 이러한 데이터를 어떻게 사용할 것인지에 대해 초점을 맞출 수 있기 때문에 구현 외적인 부분에 더 시간을 쏟을 수 있습니다.
3. 재사용성
다양한 프로그램에서 동작할 수 있도록 범용성 있게 설계되었습니다.
📁 자료구조의 분류
자료구조는 크게 선형과 비선형으로 나뉘며, 선형 자료구조는 데이터가 일렬로 나열되어있는 것을 뜻하고,
비선형 자료구조는 특정한 형태를 띠고 있는 것을 뜻합니다.
선형 구조
- 배열(Array)
- 연결 리스트(Linked List)
- 스택(Stack)
- 큐(Queue)
비선형 구조
- 트리(Tree)
- 그래프(Gragh)
- 테이블(Table)
- 셋(Set)
📚 참고
https://www.interviewbit.com/data-structure-interview-questions/
반응형
'📁Data Structure' 카테고리의 다른 글
[Data Structure] 우선순위 큐 (Priority Queue) (0) | 2022.01.10 |
---|---|
[Data Structure] 배열, 동적 배열, 연결 리스트(Array & Dynamic Array& Linked List) (0) | 2021.10.25 |
[Data Structure] 스택(Stack)과 큐(Queue) 개념, 특징, 활용 예시 (2) | 2021.10.19 |
[자료구조] List, Map, Set 특징 정리 (4) | 2021.04.07 |
[자료구조] 세그먼트 트리(구간트리, Segment Tree)로 구간 내 최소값 찾기 (1) | 2020.12.24 |