본문 바로가기

컴퓨터 공학 기초지식

Basic Data Structure

1. Stack

스택은 위의 그림과 같이 처음 들어간 요소가 마지막에 나오는 특징(FILO)을 가지고 있습니다.

빈 stack에 value가 차곡차곡 순서대로 쌓이고, value를 제거할 때에는 가장 마지막에 쌓였던 것부터 제거됩니다.

구현방법에는 배열을 사용하는것과 연결리스트를 사용하는 것 두가지가 있습니다.

두가지 방법의 장단점은 다음과 같습니다.

 

1) 배열로 구현하였을 때

 

(장점 ) 구현이 쉽다.

             원하는 데이터의 접근 속도가 빠르다.

 

(단점) 데이터 최대 개수를 미리 정해야 한다.

            데이터의 삽입과 삭제에 있어 매우 비효율적이다.

 

2) 연결 리스트로 구현하였을 때

 

(장점) 데이터의 최대 개수가 한정되어 있지 않다.

            데이터의 삽입 / 삭제가 용이하다.

 

(단점) 한번에 원하는 데이터에 접근이 불가능하다.

 

 

$ Stack의 method와 property

 

method

- push()  :  스택에 데이터를 쌓습니다.

- pop()  :  스택의 최상위 값을 가져옵니다.

- isEmpty()  :  스택이 비었는지를 확인합니다.

- peek()  :  마지막 위치(top)에 해당하는 데이터를 반환합니다.

- printStack()  :  스택의 모든 요소가 연결된 문자열을 반환합니다.

 

property

- top : 데이터 삽입/삭제하는 위치

- maxSize : 배열의 최대크기

- stackArray : 배열

- Node : 스택을 구성하는 요소

 

2. Queue

큐는 스택과는 반대로 처음 들어간 요소가 처음으로 나오는 특징(FIFO)을 가지고 있습니다.

빈 queue에 value가 차곡차곡 쌓이지만 value를 제거할 때에는 가장 먼저 쌓였던 것부터 제거됩니다.

스택과 마찬가지로 배열과 연결리스트를 이용하여 구현할 수 있습니다.

 

$ Queue의 method와 property

 

method

- enqueue()  :  queue head부터 tail 방향으로 하나씩 순서대로 쌓아준다.

- dequeue()  :  queue head부터 tail 방향으로 하나씩 제거해준다.

- front()  :  queue front 데이터를 리턴한다

- isEmpty()  :  queue에 아무것도 없는경우 true, 아닌 경우 false를 리턴

- printQueue()  :  queue의 모든 요소를 반환합니다.

 

property

- locaCount  :  queue에 쌓인 데이터의 개수

- head  :  가장 앞부분에 있는 데이터

'컴퓨터 공학 기초지식' 카테고리의 다른 글

Time Complexity  (0) 2020.01.02
Advanced Data Structure  (0) 2019.12.30
Basic information of Programming  (0) 2019.12.27
Jest와 Prettier  (0) 2019.12.26
Lint 와 Test  (0) 2019.12.26