Stack 구현

김병훈·2021년 7월 22일
0

section2

목록 보기
1/6

Variable

  • 데이터를 저장할 Object type의 storage
  • stack의 가장 상단을 가리키는 Number type의 포인터 top

method

  • size() => stack에 추가된 데이터의 크기를 리턴
  • push() => stack에 데이터를 추가할 수 있어야한다.
  • pop() => 가장 나중에 추가된 데이터를 stack에서 삭제하고 삭제한 데이터를 리턴해야한다.

Caution

  • 내장객체에 정의된 method 사용금지.
  • 포인터 변수 top 의 초기값은 -1, 0, 1 등 임의적으로 지정할수 있지만, 여기서는 0 으로해서 데이터가 추가될 위치를 가리키도록한다.

수도코드

  1. stack Constructor 생성
    => constructor() this.storage, top

2.stack의 사이즈를 구해야한다.
a. => this.top은 stack이 쌓일 때마다 하나씩 증가하기 때문에, top으로 사이즈를 구할 수 있다.
b. => this.top은 stack에 새롭게 추가될 요소의 인덱스를 의미한다. 0부터 1씩 증감하기 때문에, 전체 요소의 개수를 나타낼 수있다.

  1. stack에 element를 추가한다.
    a. => 새롭게 추가될 요소의 인덱스를 나타내는 this.top을 키로, 요소를 값으로 하여 storage에 할당해준다.
    b. => this.top은 다음 인덱스를 가리키게하여 새로운요소에 대비한다.

  2. stack에서 element를 제거한 뒤, 반환한다. FILO => Last Out이라서 pop을 사용해서 제거된 값을 가져온다.
    a. => if this.size() <= 0 이면, 아무일도 일어나지 않는다 (return;)
    b. => top -1 을 최상단으로 설정한 후 , 변수에 저장하고 stack 객체에서 삭제한다. (use delete)
    c. => 하나를 제거했으니 top도 감소한다.

profile
블록체인 개발자의 꿈을 위하여

0개의 댓글