정보 처리/자료구조

자료 구조의 개요

본클라쓰 2009. 10. 26. 10:37

자료 구조의 정의

 

자료 구조란 자료 사이의 논리적인 관계를 프로그램에서 쉽게 이용할 수 있도록 구성된 개별적인 자료 원소들의 집합을 말합니다.

현실 세계로부터 관찰이나 측정을 통해 수집된 사실이나 개념의 값 또는 값들의 집합인 데이터를 효율적으로 사용할 수 있도록 구조를 만들어 저장해 두는 것이 자료 구조입니다. 데이터를 효율적으로 사용한다는 것은 데이터의 추가, 삭제, 검색을 말하며, 자료 구조로는 리스트, 스택, 큐, 해쉬 테이블 등이 있습니다. 자료 구조의 목적은 컴퓨터 시스템을 이용하여 자료에 대한 저장 방법 또는 이용 방법을 보기 쉽고 이해하기 쉽도록 하는데 있습니다.

 

 

 

자료 구조의 분류

 

자료 구조의 분류는 선형(Linear) 구조와 비선형(Non-linear) 구조로 구분할 수 있는데, 순차적인 형태로 구성된 것을 선형 구조, 일정한 형식이 없는 구조를 비선형 구조라 합니다.

 

· 선형 구조 : 연속 배열 저장, 연결 리스트(Linked list), 스택(Stack), 큐(Queue), 데크(Deque) 등

· 비선형 구조 : 트리(Tree), 그래프(Graph)

 

 

 

자료 구조의 이용

 

· 정렬(Sorting) : 각 레코드의 특정 부분을 키로 하여 키 값에 따라 오름차순(Ascending) 또는 내림차순(Descending)으로 재배열하는

   작업입니다. 가나다라 순으로 되어있는 것이 오름차순 정렬이고, 높은 점수에서 낮은 점수로 되어 나열하는 것이 내림차순입니다.

· 검색(Search) : 기억공간에 기억된 특정 자료 중 사용자가 원하는 자료를 찾아내는 작업입니다.

· 인덱스(Index) : 원하는 레코드에 빠르게 접근하기 위해서 사용하는 방식입니다.

· 파일 편성(File organization) : 파일에서 레코드의 물리적인 배열 방법입니다.

 

 

 

※ 컴퓨터가 자료를 표현하는 방법 

 

사람들은 문자를 사용해 정보를 전달하지만, 컴퓨터는 기계이기 때문에 데이터 전달에 2진수를 사용합니다. 2진수를 사용하는 이유는 여러 진법 중에 컴퓨터의 데이터를 표현하기엔 2진 만큼 효율적인 것은 아직 없기 때문입니다. 2진으로 이루어진 단위를 비트라고 하며 2진수 한 단위를 뜻합니다. 1개의 비트는 2개의 경우의 수를 가지면 표현할 수 있는 데이터도 0과 1 두개입니다.

 

하지만 실제 세계는 2개로 표현하기에는 너무 다양한 데이터가 있습니다. 따라서 표현수를 증가시키기 위해 비트들의 집합을 사용합니다. 네 개의 비트가 모이면 표현할 수 있는 경우의 수는 16가지로, 8개의 비트가 모이면 256가지가 됩니다. 이런 방식으로 비트를 몇 개씩 묶어 하나의 데이터를 표현합니다.

 

비트(bit)  니블(Nibble) → 바이트(Byte) → 워드(Word) → 필드(Field) → 레코드(Record) → 파일(File) → 데이터베이스

 

비트는 Binary Digit의 약자로 컴퓨터 데이터의 기본 단위입니다. 니블은 4개의 비트가 이루어진 단위이고, 바이트는 8개의 비트가 모여 구성되어 있으며, 정보를 표현할 수 있는 최소한의 데이터 단위입니다. 워드는 두 개 이상의 바이트의 모임이며, 컴퓨터의 기억 장치로부터 자료를 입출력하는 기본 단위입니다. 필드는 레코드를 구성하며 파일을 구성하는 단위 중 최소의 논리적 단위이고, 레코드는 관련된 필드들의 모임입니다. 필드는 프로그램 상에서 자료처리 단위로 한 종류의 개체를 총괄적으로 나타낸 것입니다.

 레코드는 응용 프로그램에서 사용자가 정의한 논리적 레코드와 실제 저장 매체에서 입출력 될 때의 기본 단위인 물리적 레코드로 나눌 수 있습니다. 파일은 기억 장치 내에 저장되어 있는 연관된 레코드의 집합이며, 관련 자료의 집합입니다. 데이터베이스는 하나 이상의 응용 분야에서 사용될 수 있도록 중복이 제거된 상태로 저장된 자료의 집합입니다.

'정보 처리 > 자료구조' 카테고리의 다른 글

배열(Array)  (0) 2010.06.17
이중연결 리스트(Double Linked List)  (0) 2010.03.21
트리(Tree)  (0) 2009.10.27
큐(Queue)  (0) 2009.10.27
스택(stack)  (0) 2009.10.27