자료구조란?
자료를 효과적으로 표현하고 효율적으로 저장 및 처리할 수 있도록 논리적인 구조로 설계하고 분석하는 것
자료구조의 분류
자료형태에 따른 분류
- 단순 구조
- 선형 구조
- 비선형 구조
- 파일구조
단순 구조
자료형에 해당하는
정수
실수
문자
문자열
등
선형 구조
자료들 사이의 관계가 1:1 관계
순차 리스트
연결 리스트
스택
큐
데크
등
순차 리스트
란 자료의 논리적 순서와 물리적 순서가 일치
연결 리스트
는 물리적 순서와 상관없이 포인터를 사용하여 논리적인 순서대로 연결하는 구조
포인터
란 메모리의 주소 값을 담는 자료형이다.
비선형 구조
자료들 사이의 관계가 1:다 또는 다:다 관계
트리
그래프
트리
트리
란NODE
(데이터) 와EDGE
(연결선) 를 가지는 나무 형태의 구조
그래프
그래프
란 트리와 비슷하게 노드와 엣지로 구성 됨. 그래프에서는 노드를버텍스
, 엣지를아크
라고 부름
파일 구조
자료들 사이의 관계가 1:다 또는 다:다 관계 데이터베이스 자료 보조 기억 장치의 데이터 서로 관련 있는 필드로 구성된 레코드 집합
자료의 표현
수치 자료의 표현
10진수의 표현
- 존 형식 표현
- 팩 형식 표현
2진수의 정수 표현
컴퓨터는 기본적으로 2진수와 가장 친함. bit 단위가 0, 1 : 2진수 형태이기 때문
정수란 음수와 양수를 포함하는 수 인데 컴퓨터가 음수를 어떻게 표현하느냐를 이해해야함.
음수를 어떻게 표현하느냐에 따라 2진수의 정수 표현법은 세 가지로 나뉨.
- 부호와 절댓값 형식
- 1의 보수 형식
- 2의 보수 형식
이 중 가장 중요한 것은 2의 보수 형식임. 현재 컴퓨터는 이 방식으로 정수를 표현하고 있음.
2진수의 실수 표현
실수를 2진수로 표현하는 방법은 두 가지로 나뉨.
- 고정소수점 표현 방식
- 부동소수점 표현 방식
이 중 컴퓨터는 부동소수점 표현 방식을 사용함.
문자 자료의 표현
BCD 코드
BCD 코드는 6비트를 사용하여 문자를 표현함.
존 비트와 숫자 비트로 구성된 표현 방식. 존 비트는 4 가지의 경우의 수를 지님.
- 숫자 0 ~ 9
- 문자 A ~ I
- 문자 J ~ R
- 문자 S ~ Z
EBCDID 코드
EBCDID 코드는 8비트를 사용하여 문자를 표현함. IBM에서 개발
… 이런게 있나보다 …
ASCII 코드 (아스키코드)
American Standard Code for Information Interchange 의 준말.
American 을 통해 알 수 있듯이 영어의 표현을 주 목적으로 함.
영어 대문자, 영어 소문자, 특수문자, 10진수 숫자를 나타낼 수 있음.
유니코드 (UNICODE)
ASCII 코드는 알파벳의 표현을 위해 만들어 진 것이기 때문에 다양한 국가의 다양한 언어를 표현할 수 없음.
이를 해결하기 위해 ISO 국제 표준기구의 하위분야로써 문자 코드의 표준화를 진행하였고 그 결과물이 유니코드임.
한글도 유니코드로 표현함. 따라서 웹개발에 있어 한글 지원을 위해서는 유니코드를 지원해야함.
논리 자료의 표현
Boolean : 참과 거짓 (True or False) 0 또는 1
1 비트만 있으면 되지만, 일반적으로 컴퓨터 내부에서는 1바이트나 1워드(2바이트)로 표현됨.
포인터 자료의 표현
포인터 자료는 메모리 주소를 표현하기 위한 자료 형식.
문자열 자료의 표현
문자열 자료는 문자 그룹을 하나의 자료로 취급하여 메모리에 연속적으로 저장하는 자료 형식이다.
문자열의 표현 방법은 크게 세 가지로 나뉨.
- 구분자를 사용하는 방법
- 고정 길이로 저장하는 방법
- 포인터를 사용하는 방법
세 방법의 비교는 책을 통해서 진행.
자료의 추상화
자료형 = 자료 + 연산