Skip to content

Files

Latest commit

8133094 · Apr 12, 2020

History

History

1_stack_using_array

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
Apr 12, 2020
Apr 12, 2020
Apr 12, 2020
Apr 12, 2020
Apr 12, 2020
Apr 12, 2020
Apr 12, 2020
Apr 12, 2020
Apr 12, 2020
Apr 12, 2020

Stack using Array

스택할당/해제

  • 새로운 스택을 할당하고 초기화 시켜준다.
  • 스택의 최상단을 의미하는 top 는 '0'이 아닌 '-1'로 초기화 시켜준다. (인덱스가 0일때 데이터가 1개)
  • 스택에 데이터를 담을 수 있도록 스택 최대크기 'max_size'만큼 할당해준다. 실패 시, 앞서 할당한 스택을 free해준다.
  • 스택 해제 시 만일 stack만 free해줄 경우 max_size * 8바이트(64bit기준) 만큼 메모리릭이 발생하게 된다. 따라서, 초기화했을 때 메모리를 할당해준 역순으로, 데이터의 메모리를 우선 free해주고 stack을 마지막에 free해준다.
  • 관련예제 : init, free

삽입연산

  • 최상단 인덱스를 1 증가시켜 스택의 가장 위에 새로운 데이터를 추가한다. 만약 최상단의 인덱스 'top' 이 스택 최대 크기 'max'와 같거나 그보다 크다면 더 이상 새로운 데이터를 담을 수 없다.
  • 관련예제 : push

참조연산

  • peek 연산과 pop 연산과 달리 최상단 데이터를 삭제하지 않고 참조하여 반환하기만 한다.
  • 스택의 크기는 최상단 인덱스 top 을 통해 바로 알 수 있다. 인덱스가 0부터 시작함에 주의한다.
  • 관련예제 : peek, size

삭제연산

  • pop 연산 시 pop 시킬 데이터는 따로 저장해주고, 최상단 데이터를 0으로 초기화해 준 후 최상단 인덱스를 1 감소시킨다.
  • 관련예제 : pop, clear