훈, IT 공부/컴퓨터기초

[자료구조] 자료구조란 무엇인가!? 간단히 짚고만 가자

IT훈이 2018. 3. 8.
반응형

자료구조


 학부생때부터 자료구조 라는 이름은 굉장히 지루해보이고 딱딱해보였었습니다. 가르치는 교수님 조차도 딱딱하게 가르쳐주셨구요. 배움의 문제로 인해서 멀리하게 될뻔했던 자료구조를 쉽게 풀어서 배워봐야합니다. 프로그래머가 될 것이면 말이죠.


● 자료구조란??


도서관이라는 예를가지고 자료구조를 쉽게 풀어봅시다.

자료구조 라는 단어를 반으로 나누어서 생각해봅시다. 

자료구조!?

자료 - 도서관에 무수히 많은 책이라 가정을 해봅니다.

구조 - 도서관에 무수히 많은 책을 정해진 규칙에 맞게 정리하는 식별법이라 생각합니다.


두 단어를 종합해보면 찾기쉽게 잘정리된 책 진열장 이라는게 연상이 되시나요? 맞습니다. 자료구조는 단순히 자료를 쉽게 찾기 위해서 사용하는 알고리즘 이라고 생각하시면 됩니다. 정리가 되어있지 않은 도서관에 가서 "어린왕자" 라는 책을 찾아보라고 하면 얼마나 시간이 걸릴까요?? 못찾을겁니다. 그래서 도서관에 가면 역사, 문학, 스포츠, 언어 등등으로 분류가 되어있지 않습니까?


그렇다면 자료구조의 종류가 두가지로 분류되는 데 한번 알아보겠습니다.


▷ 선형구조

- 놀이기구를 타기위해서 대기할 때, 나란히 세워져있는 줄을 연상하면 됩니다. 한 선에 들어있는 데이터 구조이다... 


스택 ( Stack )

 - 김치냉장고를 연상해보시겠나요? 김치냉장고는 차곡차곡 김치를 쌓아둡니다. 그런데 맨 아래 김치를 꺼내고 싶다면 어떻게 해야할까요? 위에서부터 다 꺼내야지 맨 아래의 김치를 꺼낼 수 있습니다. 스택은 이 구조와 100%동일합니다.

 - 즉 마지막에 들어간것(Last In) 이 먼저 나옵니다 (First Out)  LIFO (Last in First out) 


큐( Queue ) 

 - 바닥이 없는 김치냉장고를 연상하실 수 있으신가요?? 그렇다면 넣은 김치는 아래로 빠져나오겠지요?? 이 방식이 큐 방식입니다.

- 넣는 방향과 나오는 방향은 정해져 있고, 서로 다른 방향에 있다는 점입니다. 먼저 넣는게 (First In) 먼저 나오게 (First Out) 됩니다. FIFO ( First in First out ) 


덱 ( Deque ) Double-ended-Queue

 - 양쪽 끝에서 삽입과 삭제가 가능한 큐 구조입니다. 기존의 큐는 한방향에서만 가능하던 것들이 양쪽에서 가능하게 된 것이지요 

 

▷ 비선형구조

- 가지가 무수히 많이 있는 나무를 생각하시면 됩니다. 한 가지에서 두갈래로 나눠지고 또 한가지에서 두갈래로 나눠지게 되어있습니다.


반응형

댓글