[제 1 장] DataStructure

Download Report

Transcript [제 1 장] DataStructure

제1장
Data Structure
데이터
데이터 : 컴퓨터에 의해 처리하려는 대상
정 보 : 어떤 문제를 해결하기 위해 컴퓨터 시스템에 의
해 처리된 데이터 또는 의미 있는 데이터
데이터
컴퓨터 시스템
정보
데이터의 종류
수치 데이터 예) 정수, 실수, 배정도 실수, 복소수 등
문자 데이터 예) 영문자, ASCII, 한글코드 등
논리 데이터
포인터 데이터
수치 데이터 - 정수 (1/3)
정수
정수의 표현
n-1
n-2
n-3
.....
3 2 1 0
크기 표시 부분((n-1)개 비트)
부호비트
정수를 표현하는 방법 (양의 정수는 모두 동일)
부호있는 절대치
부호있는 1의 보수
부호있는 2의 보수
수치 데이터 - 정수 (2/3)
표현
2byte, 4byte
부호비트
좌측 첫 번째 비트
양수(+) : 0, 음수(-) : 1
소수점은 가장 우측에 고정된 것으로 가정
범위
2byte : -32,768 ~ 32,767
4byte : -2,147,483,648 ~ 2,147,483,647
음수를 표시하는 방법
부호와 절대값 표현법
1의 보수 표현법
2의 보수 표현법
수치 데이터 - 정수 (3/3)
정수
정수 표현의 예 (4비트로 표현시)
부호있는
부호있는
부호있는
절대치
1의보수
2의 보수
+7
0111
0111
0111
+0
0000
0000
0000
-0
1000
1111
-
-5
1101
1010
1011
-8
-
-
1000
10진수
예제 1.1(P19)
수치 데이터 - 실수 (1/3)
실수
고정 소수점 (Fixed point)
소수점을 사용하여 표현하는 방법
컴퓨터와 외부와의 입출력에 사용
유효 숫자에 비해 자리수가 너무 클 경우, 저장하기
에 비효율적
예) 0.00000012 9300000000.0
수치 데이터 - 실수 (2/3)
실수
부동 소수점 (Floating point)
지수부와 가수부로 나누어 표현
예) 0.00000012 = 0.12  10-6
9300000000.0 = 0.93  1010
정규화 (Normalization)
; 가수 부분의 소수점 밑 첫자리가 0이 아니도록 정렬
지수부분 = 실제 지수 + 편중값
편중값: 지수의 부호를 표현하기 위한 부호 비트 대신 사용
예제 1.2(P21)
비수치 데이터 (1/4)
문자 데이터
영문자(A-Z), 숫자(0-9), 특수문자로 구성
6비트 이상 필요
ASCII (American Standard Code for Information Interchange)
7비트 코드
EBCDIC (Extended Binary Coded Decimal Interchange)
8비트 코드
한글코드
완성형, 조합형
논리 데이터
참, 거짓만을 나타내는 데이터
비수치 데이터 (2/4)
포인터 데이터
현재의 데이터에 다음 데이터의 위치 정보를 포함하여 표현
현재의 데이터로부터 다음 데이터의 주소 결정
다음 데이터의 위치를 나타내는 데이터를 포인터(pointer) 또는 링
크(link)라고 부름
실수 2.71828의 부동소수점 표현
실수 2.71828의 부동소수점 표현
포 인 터
실수 2.71828의 부동소수점 표현
포
인
터
실수 2.71828의 부동소수점 표현
포
인
터
실수 2.71828의 부동소수점 표현
포인터를 사용한 경우
포인터를 사용하지 않은 경우
비수치 데이터 (3/4)
포인터 데이터의 장점
기억장치 측면에서 효율적이다.
데이터의 형태와 복잡성에 관계없이 참조할 수
있는 방법을 제공해 준다.
포인터는 단순 고정 길이의 데이터이기 때문
데이터 구조의 재구성이 빠르다.
삭제, 삽입 등
비수치 데이터 (4/4)
포인터가 데이터를 참조하는 방식
절대 방식
참조될 데이터가 저장되어 있는 기억장치의 절대주소를 이용
상대 방식
기준 위치로부터 포인터가 가리키는 데이터의 위치까지의 차이값을
이용
한 프로그램이 기억장치에 저장될 때 프로그램의 데이터 영역에 대한 기
준 위치로부터 포인터가 가리키려는 데이터의 위치까지의 차이값을 포
인터가 갖는다.
기준 위치는 기준 레지스터(Base Register)라는 특정 레지스터에 저
장
예) 기준위치: 7246, 포인터의 값: 12
포인터가 가리키는 데이터의 절대주소: 7246+12 = 7258
오늘날의 대부분 컴퓨터는 상대 방식을 채택
데이터 구조의 종류
기초 데이터 형태
•
•
•
•
•
광의의
데이터 구조
정수형
실수형
문자형
논리형
포인터형
협의의
데이터 구조
단순 형태
• 스트링
• 배 열
• 레코드
복합형태(선형)
• 스택
• 큐
• 리스트
복합형태(비선형)
파일 구조
•
•
•
•
그래프
일반트리
이진트리
특수트리