본문 바로가기

FALL in/G.MA' s 자료구조

1.자료구조의 개요(1)


 자료구조란?

자료를 효율적으로 사용하기 위해서 자료의 특성에 따라서 분류하여 구성하고 저장 및 처리하는 모든작업



왜 자료구조를 배워야 하는가 

문제 도출 단계 에서 문제 정의를 하고 문제 변환단계에서 프로그램을 작성할수 있도록 자료정의와 알고리즘 작성을 해야한다.

따라서 자료구조와 알고리즘은 프로그래머에게 필수적이다.



자료구조의 분류 - 자료의 형태에 따른 분류 

- 단순구조: int, float, char, char* 등의 기본 자료형  => C언어 


- 선형구조: 리스트, 연결 리스트, 스택, 큐, 덱 등

-> 1차원- 한직선상에 놓을수 있음, 순서가 있음

- 비선형 구조: 트리, 그래프 등 

->2차원 - 한직선상에 놓을수 없음, 순서를 구분할수 없음, 평면에 놓을수 있음

=> 자료구조(메인메모리에 적재)


- 파일구조: 순차파일, 색인 파일, 직접파일 등  => 파일구조(하드디스크에 저장)



자료의 표현  

트랜지스터에는 1 or 0 만 저장할수 있다. 따라서 컴퓨터는 2진수를 이용한다.


- 1bit: 1 or 0 저장 가능

- 1byte(= 8bits) :2^8가지의 다른 수를 표현할수 있다. 알파벳과 기호를 256가지로 나타낼수 있으므로 1byte라는 단위를 사용한다. 즉 100bytes는 문자가 100개 있다는 뜻일 수 있다.

- 1nibble(= 4bits) : 10진수의 표현(0~9)을 위해서는 10가지의 다른수를 나타낼수 있는 bit수가 필요하다 3bits는 2^3 즉 8가지를 표현할수 있으므로 3bits로는 10진수 표현을 할수 없다. 4bits로는 2^4 즉 16가지로 10진수 표현이 가능하다. 하지만 6가지가 남는다. 그래서 16진수를 쓴다.(0 1 2 3 4 5 6 7 8 9 A B C D E F)