자료구조

백승용·2020년 10월 22일
0

자료구조

목록 보기
1/5
post-custom-banner

데이터와 정보의 차이점

자료 구조에 대해서 알아보자. 영어로는 Data Structure라고 하는데 Data에 대해서 알아보자. 데이터는 문자, 숫자, 그림 등을 의미한다. 예를 들면, Netflix에서 사용자는 "한국의 TOP 10 콘텐츠(데이터)"를 보고 콘텐츠를 시청하여 감상평을 올리거나 블로그로 정리하는 것(가공)을 정보라고할 수 있습니다.

컴퓨터에서 데이터(Data) 처리 방법

컴퓨터가 데이터를 저장하는 곳이 있는데 비휘발성인 HDD/SDD와 휘발성인 RAM(Random Access Memory)이 있습니다. 그럼 비휘발성은 무엇이냐하면 컴퓨터 전원을 꺼도 저장된 데이터가 사라지지 않는 것을 의미하고 휘발성은 저장된 데이터가 컴퓨터 전원을 끄면 사라지는 것을 의미합니다. 그럼 이러한 의문이 들 수 있습니다. HDD나 SDD만 사용하면 되는데 왜 RAM을 사용하는지 의문이 들수 있는데 이는 CPU와 속도 차이 때문에 그렇습니다. 여기서 속도는 데이터 처리 속도를 의미합니다.
CPU의 속도가 너무 빨라 HDD나 SDD에서 데이터에 접근하는 속도로는 따라갈 수 없어서 RAM으로 CPU의 처리 속도를 보완한다고 생각하면 된다. HDD는 데이터 접근이 오래 걸리지만 RAM은 데이터에 바로 접근이 가능하여 CPU가 데이터에 접근하는데 용이합니다.
처리 속도는 HDD >> RAM >> CPU 순이다.

자료구조(Data Structure)란

데이터가 컴퓨터에 저장되는데 어떤 형태로 데이터를 저장한 것을 자료구조라고 한다.
그래서 자료 구조에는 Stack, Queue, Linked List, Hash Table 등이 있다.

알고리즘과 자료구조

데이터를 처리하는데 있어 어떻게 하면 효율적으로 저장하고 어떻게 하면 빨리 접근하며 어떻게 하면 관리하기 용이하고 어떻게 하면 조회하는데 복잡도를 낮출 수 있는지를 고민하는 것이 알고리즘라고 한다.

아래 링크는 알고리즘과 자료구조의 차이점을 책장에 책꽂기로 설명이 잘 되어있는 블로그 글이다.
알고리즘과 자료구조 차이

Stack

후입선출(LIFO)방식의 데이터 저장 방법이다.
OverStack: 꽉 차있는 상태에서 데이터를 추가했을 때 발생하는 에러이다.
UnderStack: 빈 Stack에서 데이터를 빼낼때 생기는 에러이다.

메서드
push : 스택에 데이터를 추가
pop : 스택의 맨 위의 데이터를 삭제
isEmpty : 데이터가 없으면 true를 반환
peek : 스택의 가장 위에 있는 데이터를 반환한다.

시간 복잡도
조회: O(n)
추가: O(1)
삭제: O(1)

Queue

선입선출(FIFO)방식의 데이터 저장 방법이다.

시간 복잡도
조회: O(n)
추가: O(1)
삭제: O(1)

메서드
enqueue : 큐에 데이터 추가
dequeue : 큐의 맨 앞의 데이터를 삭제
peek : 큐의 맨 앞의 데이터를 반환한다.

post-custom-banner

0개의 댓글