[S/W] 자료구조 / 소프트웨어에서의 자료구조/ Data structure / 간단 명료 설명

2021. 9. 2. 17:41💻/Software

❕ 자료구조는 데이터의 표현 및 저장방법
 - 효율성 추구
 - 효과적인 관리(특성에 따른 분류)
 - 구조화(Structure)를 통한 접근 및 수정, 저장

📖 데이터의 구성
 - 비트(bit), 바이트(byte), 단어(word), 항목(item), 필드(Field), 레코드(record), 블록(block), 파일(file), 데이터베이스(database) 등

❔ 왜 쓰는가
 - 아래 조건에 맞는 질 좋은 프로그래밍을 작성하기 위해서 
  1. 언어의 구조와 개념이 단순하고 명료해야 한다.
  2. 언어의 개념이 확장성이 있어야 한다.
  3. 신뢰성이 있어야 한다.
  4. 다른 기종과 호환이 되어야 하며 다른 언어에 쉽게 이식성이 있어야 한다.
  5. 추상을 지원하고 검증하기 쉬워야 한다.

⭕ 상황에 맞는 자료구조 선택이유
 - 보다 효율적인 알고리즘을 사용하여 데이터들을 구조화 시키는 것, 자료구조로 인한 이득의 특징
  1. 효율성(efficiency)  - Worst Case(시간,용량 등)를 고려하여 알맞는 알고리즘을 선택하여 사용할 수 있게함.
  2. 추상화(abstraction) - 어떻게 구현할 것인가가 아닌 어디에 어떻게 사용할 것인가에 대한 초점. 
  3. 재사용성(reusability) - 다양한 자료에 상황에 따라 다양하게 사용할 수 있고, 규정된 자료구조를 모듈화하여 사용함으로써 다양한 프로그램에서 재 사용할 수 있도록 접근.

자료구조의 선택 기준
- 자료의 크기, 사용빈도
- 자료의 성질
- 갱신 정도
- 구현에 필요한 기억장소의 크기
- 자료에 대한 접근시간
- 프로그램의 용이성

💬 자료구조의 분류
선형구조: 리스트, 연결리스트(단순, 이중, 원형), 스택, 큐, 덱
비선형구조: 트리(일반, 이진), 그래프(방향,무방향)

단순구조: 정수, 실수, 문자, 문자열
파일구조: 순차파일, 색인파일, 직접파일

출처 및 참고

'💻 > Software' 카테고리의 다른 글

Clean Code  (0) 2022.07.04
[S/W] 디자인 패턴 / Design Pattern  (0) 2021.06.09