본문 바로가기

Mini-Study

Stack, Queue, Linked List란?

*Stack

: 한쪽 끝에서만 데이터를 넣고 뺄 수 있는 구조

(즉, 출구와 입구가 같은 구조)

: 나중에 넣은 데이터가 먼저 처음에 넣은 데이터가 나중에 나오는 구조

(LIFO - Last In First Out)

: 접시를 쌓거나 책을 쌓을때 등과 같음

출처: https://dev.to/rinsama77/data-structure-stack-and-queue-4ecd

-method

: top(데이터 삽입 및 삭제하는 위치)

: peek(데이터 위치 탐색)

: top(스택의 맨 위에 있는 데이터 값을 반환)

: push(스택에 데이터를 삽입)

: pop(스택에서 데이터를 삭제하여 삭제한 값을 반환)

: isempty(스택에 원소 유무 판단 - 없으면 ‘true’, 있으면 ‘false’ 값 반환)

: isfull(isempty와 반대)

*Queue

: 데이터가 들어가는 쪽과 나오는 쪽이 반대인 구조

(즉, 출구와 입구가 다른 구조)

: 먼저 넣은 데이터가 먼저 나중에 넣은 데이터가 나중에 나오는 구조

(stack과 반대, FIFO - First In First Out)

: 놀이공원 입장이나 영화관 입장 등과 같음

출처: https://cs.lmu.edu/~ray/notes/queues/

-method

: peek(front에 위치한 데이터를 읽음)

: head(큐의 맨 앞의 위치)

: tail(큐의 맨 뒤의 위치)

: enqueue(queue 맨 뒤에 데이터를 삽입, put)

: dequeue(queue 맨 앞에 데이터를 삭제, get)

*Linked List

: 엘리먼트와 엘리먼트 간을 연결해서 리스트를 구현한 구조

(즉, 각 데이터를 포인터로 연결하여 관리하는 구조 )

: 데이터를 중간에 삽입 및 삭제하기에 용이한 구조

(자료의 수정이 많이 발생할 때 처리 속도가 빠름)

: 원하는 데이터를 찾기 위해선 처음부터 찾아가야하는 구조

(stack, queue보다 데이터를 찾기엔 불편)

: 메모리 공간을 절약가능

: 화물열차처럼 칸마다 자료가 들어가 있고, 열차 칸을 서로 연결해주는 연결 고리가 있는 형태

출처: https://hackernoon.com/the-little-guide-of-linked-list-in-javascript-9daf89b63b54

-method

: head(맨 앞에 위치한 노드)

​: before(현재 위치 전의 노드)

: current(현재 위치 노드)​

: tail(맨 뒤에 위치한 노드)

: append(리스트의 맨 끝에 데이터 추가)

: remove(데이터 삭제)

: insert(데이터 삽입)

'Mini-Study' 카테고리의 다른 글

S3, EC2, RDS  (0) 2020.02.05
React  (0) 2020.02.05
browser, server, api, http, ajax  (0) 2020.02.05
ES5 와 ES6의 상속 차이점  (0) 2020.02.05
Tree, Graph, Hash Table, Binary Search Tree 란?  (0) 2020.02.05