D+24 스택 개념 + 롤케이크 js

초록귤·약 11시간 전
0

100일프로젝트

목록 보기
16/16

스택개념 like 티슈

문제에서 최근 삽입한 데이터를 대상으로 연산해야 한다면 스택!

먼저 들어간 것이 마지막에 나오는 규칙 = 후입선출 또는 LIFO(Last In First Out)
이때 스택에 삽입하는 연산을 push, 꺼내는 연산을 pop

ADT(abstract data type : 추상 자료형)

추상 자료형이란 인터페이스만 있고, 실제로 구현은 되지 않은 자료형.

스택의 ADT

1.push : 스택에 데이터 푸시
2.pop : 스택에서 최근 푸시한 데이터를 팝하고, 그 데이터 반환
3.isFull(가득 찼는지 확인)
스택에 들어 있는 데이터 개수가 maxsize인지 확인해 boolean값을 반환.
가득 차 있다면 True, 아니면 false

4.isEmpty(비었는지 확인)
스택에 들어 있는 데이터가 하나도 없는지 확인해 boolean값을 반환.
데이터가 하나라도 있으면 false, 아니면 true

5.top(최근 삽입한 데이터 위치를 저장할 변수)
데이터 없는 기본값은 -1,
스택에서 최근에 푸시한 데이터 위치를 기록
6.ItemType data[maxsize] : 스택의 데이터를 관리하는 배열, 최대 maxsize개의 데이터를 관리

  • 자료구조의 세부 동작을 공부하면 큰 도움이 됩니다.
    효율적인 알고리즘을 떠올릴 수 있게 해주기 때문!

스택 세부동작

push >
push(2)호출하면 내부적으로 1.isFull() 수행해 data배열에 데이터가 가득 찼는지 확인하고, 그렇지 않다면 top을 1만큼 증가시킨 후 top이 가리키는 위치 data[0]에 3을 추가.

pop >
내부적으로 isEmpty() 함수 우선 실행해 data 배열에 데이터가 없는 건 아닌지 확인하고, 데이터가 있다면 top을 1만큼 감소시키고 데이터 '3'을 반환.

profile
초록색 귤이 노랑색으로 익어가듯, 실력이 익어가기 위해 노력하는 개발자 lahee입니다.

0개의 댓글