티스토리 뷰
스택의 응용 - 스택의 다양한 응용
변수에 대한 메모리의 할당과 수집을 위한 시스템 스택
서브루틴 호출 관리를 위한 스택
연산자들 간의 우선순위에 의해 계산 순서가 결정되는 수식 계산
인터럽트의 처리와, 이후 리턴 할 명령 수행 지점을 저장하기 위한 스택
컴파일러, 순환 호출 관리
스택의 연산 - 스택의 삭제 연산
(*top)--에서 사용된 ‘--’ 연산자의 위치에 따라 연산의 적용순서가 달라질 수 있음
1 2 3 4 5 6 7 | element pop(int *top) { if (*top == -1) return stackEmpty( ); return stack [(*top)--]; } | cs |
스택의 연산 - 스택의 삽입 연산
++(*top)에서 사용된 ‘++’ 연산자의 위치에 따라 연산의 적용순서가 달라질 수 있음
1 2 3 4 5 6 7 | void push(int *top, element item) { if (*top >= STACK_SIZE-1) return stackFull( ); return stack [++(*top)] = item; } | cs |