2021/1/19 자료구조(1) 스택&큐🗃

9rganizedChaos·2021년 1월 19일
0
post-thumbnail

Implementation 📒

Numeric key 사용시 주의사항 🗝

아무것도 하지 않는 함수를 실행하면 undefined가 출력된다 😳

빈 큐를 dequeue하면? 🎏

//1번 경우
  dequeue() {
    if (this.front < this.rear){
      let dequeuedEl = this.storage[this.front];
      delete this.storage[this.front];
      this.front++;
      return dequeuedEl;
    } else {
      return this.storage;
    }
  }
}

처음에는 위와 같이 작성했었습니다. 그러나 else 부분이 꼭 필요한 것인지 의문이 들어, else부분을 삭제하였습니다.

//2번 경우
  dequeue() {
    if (this.front < this.rear){
      let dequeuedEl = this.storage[this.front];
      delete this.storage[this.front];
      this.front++;
      return dequeuedEl;
    }
  }
}

처음에는 Queue()라는 클라쓰를 마치 Array()처럼 생각해서 개발자 도구에서 아래와 같이 작성해본 후 Queue나 Stack 등은 원래 자바스크립트에 내장된 것이 아니라 구현해서 쓰는 것임을 알게 되었습니다.

이제 궁금해진 것은 그렇다면, 과연 Queue와 Stack 등의 클라쓰에 표준이 있는지 입니다!
만약 제가 1번 경우와 같이 dequeue 메소드를 구현한 Queue 클라쓰를 만든다면 이는 여전히 Queue인지가 궁금했고, 헬프데스크에 질문을 남겨놓고 기다리고 있습니다. (마저 고민하고 해결해야 할 부분...)

객체 &연산자

Socrative 및 체크포인트 리뷰

Stack.Peek 메서드

Stack의 맨 위에서 개체를 제거하지 않고 반환합니다.

그렇다고 합니다.

개발자가 알아야 할 여덟가지 자료구조

>링크

컴퓨터의 역사

>링크

스택오버플로우

월드와이드 QnA 사이트라고만 알았던 stack overflow는 사실
주어진 Stack의 공간이 초과된 것을 말하는 것이었다.

이 경우가 스택 오버플로우.
재귀가 대표적인 스택의 예시라는 것을 이 예시를 통해 이해했다.

우선순위 큐

우선순위 큐는 들어간 순서에 상관없이 우선순위가 높은 데이터가 먼저 나온다.
다만, 우선 순위가 같을 시에는 원래 큐의 규칙에 따라 들어간 순서에 따라 나온다.

현실 예시) 응급실, 테마파트 프리패스권 등

원형 큐

선형 큐의 경우 front와 rear가 끝도 없이 밀린다.
자바스크립트 언어는 배열의 크기에 제한을 두지 않지만, 일부 다른 언어들은 배열의 크기를 제한하고 사용한다.
그렇게 되면 앞의 텅 비어버린 공간이 생긴다. 이를 개선하기 위해! 공간을 재활용할 수 있는 원형 큐가 존재한다.

profile
부정확한 정보나 잘못된 정보는 댓글로 알려주시면 빠르게 수정토록 하겠습니다, 감사합니다!

0개의 댓글