카테고리 없음

자료구조의 개념

kchabin 2023. 3. 13. 21:00

자료구조(Data Structure의 개념

- 자료를 효율적으로 표현하고 저장하고 처리할 수 있도록 정리하는 것. 

 

일상생활과 자료구조의 유사성 

일상생활에서의 예 해당하는 자료구조
그릇을 쌓아서 보관 스택
마트 계산대의 줄
버킷 리스트 리스트
영어사전 사전
지도 그래프
컴퓨터의 디렉토리 구조  트리

 

 

자료의 형태에 따른 분류

- 단순 구조 : 정수, 실수, 문자, 문자열, 등의 기본 자료형

- 선형 구조

   - 자료들 사이의 관계가 1:1 관계

   - 순차 리스트, 연결 리스트, 스택, 큐, 데크 등

 

 

- 비선형 구조

   - 자료들 사이의 관계가 1:다, 또는 다:다 관계

   - 트리, 그래프 등

 

- 파일 구조

   - 서로 관련 있는 필드로 구성된 레코드의 집합인 파일에 대한 구조

   - 순차 파일, 색인 파일, 직접 파일 등

 

컴퓨터에서의 자료 표현

- 숫자, 문자, 그림, 소리, 기호 등 모든 형식의 자료를 2진수 코드로 표현하여 저장 및 처리

- 2진수 코드 : 1과 0, On과 Off, 참과 거짓

 

1비트 

4비트 = 1니블

8비트 = 2니블 = 1바이트

 

n개의 비트로 2^n개의 상태 표현

컴퓨터 내부에서 표현할 수 있는 자료의 종류

컴퓨터의 모든 데이터는 bit 조합

- 컴퓨터 프로그램은 컴퓨터 상의 메모리에 어떤 데이터가 어떤 위치에 있는 지를 파악하고 있어야 함. 

 

 

프로세서는 유한한 크기의 데이터를 가지고 작업함.  

모든 데이터는 bit sequence로 표현됨. 

  - bit = 0 or 1

  - 전류의 충전 수준에 따라 0 또는 1로 표시됨.

 

Byte = 8bits

Word = 프로세서가 다루는 가장 큰 단위의 데이터 

 - 32bits = 대부분의 오래된 컴퓨터들

 - 64bits = 대부분의 최근 컴퓨터들 

 

 

C언어에서의 데이터 타입

- 실질적인 데이터 타입 4종류

   - char

   - int (short, long, long long, unsigned)

   - float

   - double

 

머신 내에서 각 데이터 타입의 크기는 명확하지만, 각 데이터 타입의 크기는 머신마다 다름. 

Type Size(bytes)
char 1
int 4
short 2
long 8
long long  8 
float 4
double 8

 

10진수의 표현

- Zone 형식의 표현

- 10진수 한 자리를 표현하기 위해서 1바이트(8비트)를 사용하는 형식

- 존 영역

  - 상위 4비트

  - 1111로 표현

 

- 수치 영역

  - 하위 4비트

  - 표현하고자 하는 10진수 한 자리 값에 대한 2진수 값을 표시

 

 

- 여러 자리의 10진수를 표현하는 방법

- 10진수의 자릿수만큼 존 형식을 연결하여 사용

- 양수 : 1100  - 음수 : 1101

- Pack 형식의 표현

- 존 영역 없이 4비트를 사용하는 형식

- 최하위 4비트에 부호를 표시 

 

- n비트의 부호 절댓값 형식

  - 최상위 1비트 : 부호 표시

    - 양수(+) : 0

    - 음수(-) : 1

  - 나머지 n-1 비트 : 이진수 표시

 

 

2진수의 정수 표현

- 1의 보수(1' Complement) 형식

  음수 표현에서 부호 비트를 사용하는 대신 1의 보수를 사용하는 방법

- n비트의 2진수를 1의 보수로 만드는 방법

  - n비트를 모두 1로 만든 이진수에서 변환하고자 하는 이진수를 뺌

 

ex) 4 = 100

111 - 100 = 011 

100 -> 011 : 원래와 반대로 쓰면 1의 보수 

 

- 2의 보수 형식

1의 보수에 1을 더함.