JS의 데이터 구조 스택

5941 단어 javascript
TLDR;
  • 컴퓨터 과학 측면에서 스택은 요소 모음을 저장하는 데이터 구조입니다
  • .
  • 스택에는 두 가지 핵심 기능이 있습니다.
  • ➕ 위에 요소를 추가할 수 있습니다 🔝
  • 또한 ➖ 상단에서 요소 팝 제거(가장 최근에 추가된 요소)


  • 스택이란?



    실제 상황에서 스택은 모든 곳에서 찾을 수 있습니다. 접시가 차곡차곡 쌓여 있는 주방에서는 완벽하게 작동하는 접시를 볼 수 있습니다. 깨끗한 접시가 있으면 스택 맨 위에 놓고 새 접시를 얻으려면 일반적으로 스택 맨 위에서 가져옵니다. 스택에 대한 말 그대로 수천 개의 밈이 있습니다.





    JavaScript의 스택



    JavaScript에서 스택은 실행 및 실행 취소 기능을 구현하는 데 사용할 수 있습니다.

    JavaScript 언어 자체는 호출 스택을 사용하여 다음에 호출할 함수를 파악합니다. 이것이 어떻게 작동하는지에 대한 멋진 이야기가 있으며 MDN에서 자세한 설명을 찾을 수 있습니다.

    배열을 사용하여 스택을 구현할 수 있습니다. 다음 예제는 함수가 있는 함수를 사용한 구현을 보여줍니다.
    건설자.

    /**
     * Represents a stack.
     * @constructor
     * @param {array} items - the array to store elements in the stack
     */
    const Stack = (items = []) => {
      let _storage = items;
      /**
       * Returns and removes the top element of the stack.
       * @return {*} the most recently added element of the stack
       */
      const pop = () => {
        return _storage.pop();
      };
    
      /**
       * Adds a new element at then end (on top) of the stack.
       * @param {*} element which should be put on top of the stack
       */
      const push = (element) => {
        _storage.push(element);
      };
    
      /**
       * Returns the current size (length) of the stack
       * @return {number} current size of the stack
       */
      const size = () => {
        return _storage.length;
      };
    
      /**
       * Returns the value at the end of the stack without removing it
       * @return {*} the last and newest value in the stack
       */
      const peek = () => {
        return _storage[size() - 1];
      };
    
      /*
       * @return {*} wheter no values are stored in stack
       */
      const isEmpty = () => {
        return _storage.length === 0;
      };
    
      /**
       * Empties the stack
       */
      const reset = () => {
        _storage = [];
      };
    
      return {
        pop,
        push,
        peek,
        size,
        reset,
        isEmpty,
      };
    };
    


    Visaulgo에서 스택의 멋진 시각적 표현도 찾을 수 있습니다.

    그들은 배열 대신 스택을 구현하기 위해 목록을 사용했습니다.

    실제 사용 및 문제



    스택 데이터 구조를 사용할 수 있는 몇 가지 실제 사용 사례 및 질문입니다.
  • https://leetcode.com/problems/valid-parentheses/
  • https://medium.com/techie-delight/stack-data-structure-practice-problems-and-interview-questions-9f08a35a7f19

  • 스택을 사용할 수 있는 문제를 https://adventofcode.com/에서 찾을 수도 있습니다.

    좋은 웹페이지 즐겨찾기