Stack

정의 : 한쪽 끝에서만 자료를 넣거나 뺼수 있는 구조


구성요소 

  • top : 값이 들어갈 인덱스 ( 즉 마지막 입력값의 인덱스 +1이 된다)
  • stack[] : 배열로 스택을 구성
  • stackInit() : top을 0으로 초기화
  • stackIsEmpty(): top==0이면 스택이 초기상태이므로 비었다는 사실을 기준으로 true/false로 리턴함
  • stackIsFull(): top==max이면 스택이 가득찬 상태인 사실을 기준으로 true/false를 리턴함

  • push (값 입력)
  1. full인지 확인하고 full이면 overflow이므로 false리턴
  2. stack의 top자리에 value를 입력하고
  3. top을 1증가시킨다음
  4. true 리턴

  • pop( 값 출력)
  1. empty인지 확인하고 empty이면 null 리턴
  2. top의 값을 -1하여 최근입력 인덱스로 바꾼다음(자연스럽게 마지막입력 인덱스가 top이 되어 마지막 입력은 삭제되는 셈이 된다.)
  3. Integer형으로 value반환

  • peek(값읽기)
  1. empty인지 확인하고 empty이면 null리턴
  2. top-1인 인덱스에 저장된 값, 즉 마지막 입력값을 Integer형으로 리턴


소스코드



'알고리즘 > 자료구조' 카테고리의 다른 글

Queue  (0) 2018.02.04

+ Recent posts