자료구조란?
자료구조는 '데이터를 효과적으로 정리하고 관리하는 방법'입니다. 데이터를 체계적으로 구성해야 빠르고 효율적으로 문제를 해결할 수 있습니다.
리스트, 스택, 큐, 트리, 그래프와 같은 다양한 데이터 정리 방법들을 정리합니다.
컴퓨터가 이해하는 방법
우리가 사용하는 숫자, 글자, 이미지 등 모든 정보는 컴퓨터 내부에서 0과 1의 조합인 이진수(Binary)로 표현됩니다. 컴퓨터의 언어는 오직 0과 1뿐입니다.
- 숫자 표현 : 우리가 쓰는 10진수를 컴퓨터는 2진수로 바꿔서 이해합니다. 특히 음수를 표현할 때는 '2의 보수'라는 방식을 주로 사용하는데, 이는 계산을 더 간단하게 만들어주기 때문입니다. 실수(소수점이 있는 수)는 '부동 소수점' 방식으로 표현하여 아주 큰 수나 작은 수도 나타낼 수 있습니다.
- 문자 표현 : 초기에는 영어를 중심으로 한 ASCII(아스키) 코드가 표준이었지만, 전 세계의 다양한 언어를 표현하기에는 한계가 있었습니다. 이를 해결하기 위해 등장한 것이 바로 Unicode(유니코드)입니다. 덕분에 우리는 컴퓨터에서 한글을 포함한 세계 각국의 언어를 자유롭게 사용할 수 있게 되었습니다.
추상화
'추상화'라는 말은 어려운 표현이지만, '핵심만 남기고 나머지는 단순화하는 것'입니다. 우리가 자동차를 운전할 때 엔진의 원리까지 알 필요는 없습니다. 핸들, 엑셀, 브레이크 등 '무엇을' 해야 하는지만 알면 됩니다.
프로그래밍에서도 마찬가지입니다. '추상 자료형(ADT, Abstract Data Type)'은 자료구조의 '사용 설명서'와 같습니다. 이 자료구조가 '무엇을' 할 수 있는지(예: 데이터 추가, 삭제, 검색)에만 집중하고, '어떻게' 구현되는지에 대한 복잡한 내부 구조는 숨겨줍니다. 이를 통해 우리는 더 큰 그림을 보며 문제 해결에 집중할 수 있습니다.
- 추상화: "무엇(What)을 할 것인가?"에 대한 논리적 정의
- 구체화: "어떻게(How) 할 것인가?"에 대한 실제적 구현
728x90
'자료구조' 카테고리의 다른 글
| 연결 자료구조와 연결 리스트(2) (0) | 2025.10.22 |
|---|---|
| 연결 자료구조와 연결 리스트(1) (0) | 2025.10.21 |
| 순차 자료구조와 선형리스트 (0) | 2025.10.20 |
| C언어 문법 (0) | 2025.09.26 |
| 알고리즘 기초 (0) | 2025.09.26 |