JavaScript 데이터 구조: 스택: 소개

소개



를 완료한 후 스택부터 시작합니다.


스택이란 무엇입니까?


  • "Last In, First Out"-Principle을 사용합니다.
  • 예: 카드 더미, 접시 더미, 브라우저 기록
  • 스택을 구현하는 방법에는 여러 가지가 있습니다. 배열, 단일 연결 목록, 이중 연결 목록




  • 스택의 빅오


  • 액세스: O(N)
  • 검색: O(N)
  • 삽입: O(1)
  • 삭제: O(1)



  • 예시



    스택을 구축하기 위해 Singly Linked List를 사용할 것입니다.
    A <== B <== C (last)
  • C는 스택
  • 위에 마지막으로 푸시(= 추가)한 노드입니다.
  • C에는 다음 노드( next )
  • 에 대한 포인터( B )가 있습니다.
  • 팝(= 제거)C하면 스택 맨 위에 있는 다음 노드는 B여야 합니다.



  • 설정



    스택을 구축하려면 다음 부품이 필요합니다.
  • 값이 있는 노드와 스택의 다음 항목에 대한 포인터
  • 길이와 마지막 항목에 대한 포인터가 있는 스택

  • // a Node has a value (`value`) and a pointer to the next node (`next`)
    class Node {
      constructor(value) {
        this.value = value;
        this.next = null;
      }
    }
    
    // a Stack has a length and a last item (`last`)
    class Stack {
      constructor() {
        this.length = 0;
        this.last = null;
      }
    }
    



    생각



    스택을 설정했습니다. 이제 스택 내에 최소한 두 가지 메서드가 필요합니다.
  • 스택 위에 새 노드를 푸시하는 방법: push
  • 스택의 맨 위에서 마지막 노드를 팝 오프하는 방법: pop



  • 다음 부분



    스택에 대한 첫 번째 방법을 구현할 것입니다.

    알림을 받고 싶다면 subscribe !


    질문


  • 배열이나 이중 연결 목록 대신 단일 연결 목록을 사용할 때의 장단점을 생각해 볼 수 있습니까?
  • 좋은 웹페이지 즐겨찾기