ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Data structure (stack, queue)
    개념정리 2021. 1. 19. 14:58

    stack, queue 는 데이터를 집어넣을 수 있는 선형(linear) 자료형이다.

    어떤 데이터의 구체적인 구현 방식은 생략한 채, 데이터의 추상적 형태 그 데이터를 다루는 방법만을 정해놓은 것을 가지고 ADT(Abstract Data Type) 혹은 추상 자료형이라고 한다.

    queue? 줄서기

    1. 먼저 집어넣은 데이터가 먼저 나온다. (선입선출) First In Fist Out

    Property

    1. front : 가장 먼저 들어온 데이터의 위치(index)를 나타낸다.

    2. rear : 새로운 데이터가 들어갈 위치(index)를 나타낸다.

    3. queueArray : queue저장소를 나타낸다.

    4. 우선순위 큐란? 응급실과 같이 생각하면 됨 응급환자를 먼저 뺀다. (기본은 줄서기)

     

    class Queue {

      constructor {

        this._arr = [];

      }

      enqueue(item) {

        this._arr.push(item); // 뒤로 들어가고

      }

      dequeue() {

        return this._arr.shift();  // 앞에서 나온다

      }

    }

     

    const que = new Queue();

    que.enqueue(1);

    que.enqueue(2);

    que.enqueue(3);

    que.dequeue(); // 1

     

    stack? 프링글스

    1. 나중에 집어넣은 데이터가 먼저 나온다. (후입선출) Last in First Out

    Property

    1. top : top은 말 그대로 stack에 가장 위에 쌓여있는 데이터를 나타낸다. 정확히는 그 데이터의 위치(index) 값입니다.

    2. maxSize : maxSize는 해당 저장소의 최대 크기를 나타낸다.

    3. stackArray : stackArray는 해당 저장소 자체이다.

    4. 재귀 함수는 스택과 같은 개념으로 작동한다.

     

    class Stack {

      constructor {

        this._arr = [];

      }

      push(item) {

        this._arr.push(item); // 뒤로 들어오고

      }

      pop() {

        return this._arr.pop(); // 뒤에서 나간다

      }

      peek() {

        return this._arr[this._arr.length - 1];

      }

    }

     

    const stack = new Stack();

    stack.push(1);

    stack.push(2);

    stack.push(3);

    stack.pop();  // 3

     

Designed by Tistory.