자료구조의 개념
- 컴퓨터 시스템
- 시스템의 정의
- 컴퓨터
= Electronic Data Processing System(EDPS)
= 전기 신호에 의해 자료가 처리되는 시스템 - 자료의 효율적인 처리 위해 자료형(data type) 개념 사용
- 문자, 정수, 실수, 복소수, 레코드, 구조체 등
- 시스템의 구성 요소
- 입력(input)
- 처리할 자료
- 처리 방법
- 처리(processing) → 자료 가공
- 출력(output) → 처리 결과 출력
- 제어(control)
- 귀환(feed back) → 처리 결과를 다시 입력 자료로 사용
- 자료와 정보
- 정의
- 데이터(D) → 처리기(P) → 정보(I)
I = P(D)[I(Information), P(Process), D(Data)] - 정보가 유용성을 갖기 위해서는 다음 두 가지를 갖춰야 함
- 정확성
- 현재성
- 자료
- 개념
- 현실 세계로부터 단순 관찰 또는 측정 통해서 수집된 사실이나 값
- 인식 및 처리에 알맞는 형태로 존재하며 평가되지 않음
- 데이터의 성격
- 데이터의 성격에 따라 다르게 분류하고 관리
- 이름, 소유자, 날짜, 생성자 → 음악
- 색깔, 길이, 범주 등 → 상품
- 자료구조
- 목적
- 정렬(배열)
- 관리
- 목적 달성 위해 특정 구조체의 형태로 관리 → search, sort 등 가능
- 데이터를 컴퓨터 메모리 상에 체계적으로 형성하는 방법을 배운다
- 종류
- array
- stack
- queue
- list
- heap
- tree
- graph
- 정보
- 자료가 프로그램에 의해 처리된 원하는 결과
- 어떤 상황에 대해
적절한 의사결정 할 수 있게 하는
데이터의 유효한 해석 또는 상호관계 - 발전단계
Data → Information → Knowledge → Intelligence - 알고리즘? 자료를 이용하여 정보를 구하기 위한 논리를 기술한 것
프로그램? 알고리즘을 프로그래밍 언어를 이용하여 실행논리로 구현한 것 - 자료의 단위
- 개요
- 자료 단위
bit → byte → word → record → block → file → db → data bank
bit → byte → field(item) → record → file → db → data bank - 용량 단위
bit → byte → KB → MB → GB → TB - 연산속도 단위
ms → us → ns → ps → fs → as - 기본 자료
- 수치(정수, 실수)
- 문자
- 논리
- 포인터
- 파일
- 순차 파일 구조
- 직접 파일 구조
- 인덱스된 순차 파일 구조
- DB
- 계층 구조
- 네트워크 구조
- 관계 구조
- 객체 지향 구조
- 비트(binary digit)
- 자료의 최소단위로 0 또는 1로 표현되는 2진수 한 자리를 기억시킬 수 있는 공간
- 컴퓨터는 내부적으로 2진수로 데이터 처리
- 니블
- 4비트 의미. 10진수 한 자리 표현하는 단위로 사용 가능
- 바이트
- 8비트 의미. 1문자 나타냄.
- 하나의 문자를 나타낼 수 있는 단위로 일반적으로 8개 비트가 연속된 것
0 = 0000 0000, 17 = 0001 0001, 3 = 0000 0011 - 워드
- CPU에서 처리되는 명령의 단위
- half word = 2바이트
- full word = 4바이트
- double word = 8바이트
- 컴퓨터에서 자료가 연산되는 단위. 컴퓨터가 한꺼번에 처리할 수 있는 자료의 양
- 컴퓨터의 모든 명령은 기본적으로 워드 단위로 수행.
→ 워드 길이 = CPU 구성하는 레지스터 크기
ex. 64비트 컴퓨터 = CPU가 한꺼번에 64비트씩 처리할 수 있음 의미 - 필드 또는 항목
- 레코드를 구성하는 항목으로 파일을 구성하는 단위 중 최소의 논리적 단위.
- 같은 종류의 data가 기록되는 항목으로 최소한의 문자집합
- 레코드
- 서로 관련된 필드 또는 항목의 집합. 프로그램 상에서 자료의 처리 및 기록의 단위
→ 논리적 단위, 내부에서 처리되는 단위 - 필드의 집합으로 DB에서 실제로 정보를 처리할 때 기본이 되는 단위
- 배열 → 데이터 원소의 크기와 데이터 타입이 동일
레코드 → 데이터 원소의 크기와 데이터 타입이 서로 다름 - 파일
- 물리적인 구조가 같은 레코드의 집합
- 기억매체에 저장되는 단위
- 데이터베이스
- 여러 응용분야에서 여러 사람들이 공동으로 사용할 수 있도록 조직 및 관리되고 있는 자료의 모임
- 데이터 구조
- 정의
- 데이터 객체에 적용될 연산의 종류와 기능 결정 → 실제로 어떻게 이뤄지는가 기술 → 데이터 구조가 정의된다
- 수학적인 모델 또는 논리적 모델을 컴퓨터 내부에 표현
- 컴퓨터 기억공간에서 자료처리를 위한 데이터 표현법, 자료간의 상호관계를 파악하여 작업을 수행하기 위한 알고리즘을 연구
- 분류
- 선형구조
- 배열
- 물리적 연속성 있음
- 검색 연산, 기록밀도, 수정연산 높다
- 삽입, 삭제 연산 낮다
- 정적구조
- 외부단편화 발생
- 연결
- 논리적 연속성 있음
- 검색연산, 기록밀도, 수정연산 낮다
- 삽입, 삭제 연산 높다
- 동적구조
- 외부단편화 미발생
- 비선형구조
- 트리
- 그래프의 특수한 구조.
- 사이클 허용하지 않음
- 그래프
- 사이클 허용
- 자료구조 선택시 고려사항
- 데이터 양, 접근빈도, 접근시간
- 데이터의 성격
- 잦은 변경?
- 일정 형태 유지?
- 사용되는 컴퓨터의 메모리 허용도
- 프로그램 작성의 용이성
- 데이터의 사용 빈도 및 저장 방식
- 데이터 객체
- 자료형의 실체를 구성하는 원소의 집합 ex. 자연수 N의 데이터 객체 = {1, 2, 3, 4, … } ex. 정수형 D의 데이터 객체 = { … , -3, -2, -1, 0, 1, 2, 3, … }
1. 자료 구조의 개념
피드 구독하기:
댓글 (Atom)
-
자료 종류와 표현 자료의 표현 수치 자료 정수 표현(고정소수점 수의 표현) 10진 연산 팩(packed) 연산 언팩(unpacked) 연산 2진 연산 부호화 크기 1의 보수 2의 보...
-
a. 정의 i. 데이터 타입을 추상적*(수학적)으로 정의한 것 1) 추상 = 어떤 물체나 현상의 중요한 특징만을 추출하여 표현하는 것 2) 가장 중요한 추상의 타입 i) 부분으로 나누기( Has-A abstraction) → 요소(c...
-
//코드 참조 사이트: http://javannspring.tistory.com/174 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ...
댓글 없음:
댓글 쓰기