Stack
정의 : 한쪽 끝에서만 자료를 넣거나 뺼수 있는 구조
구성요소
- top : 값이 들어갈 인덱스 ( 즉 마지막 입력값의 인덱스 +1이 된다)
- stack[] : 배열로 스택을 구성
- stackInit() : top을 0으로 초기화
- stackIsEmpty(): top==0이면 스택이 초기상태이므로 비었다는 사실을 기준으로 true/false로 리턴함
- stackIsFull(): top==max이면 스택이 가득찬 상태인 사실을 기준으로 true/false를 리턴함
- push (값 입력)
- full인지 확인하고 full이면 overflow이므로 false리턴
- stack의 top자리에 value를 입력하고
- top을 1증가시킨다음
- true 리턴
- pop( 값 출력)
- empty인지 확인하고 empty이면 null 리턴
- top의 값을 -1하여 최근입력 인덱스로 바꾼다음(자연스럽게 마지막입력 인덱스가 top이 되어 마지막 입력은 삭제되는 셈이 된다.)
- Integer형으로 value반환
- peek(값읽기)
- empty인지 확인하고 empty이면 null리턴
- top-1인 인덱스에 저장된 값, 즉 마지막 입력값을 Integer형으로 리턴
소스코드