1. 배열을 이용한 STACK
PUSH (stack, top, item, max)
// stack -> 배열, top -> 스택의 맨 위, item -> 집어넣을 값, max -> 최대 스택
if(top == max){
exit 0
}
stack[top++] = item
POP (stack, top, item)
if(top == 0){
exit 0
}
item = stack[top--]
2. 단순연결리스트를 이용한 STACK
PUSH(top, item)
CALL GETNODE(I)
I->link=top
top=I
POP(top, item)
tmp = top
item = tmp->data
top = tmp->link
CALL RET(tmp)
3. PREFIX, POSTFIX, INFIX
infix : 연산자 중심으로 양쪽에 피연산자가 위치한다. [a+b]
prefix : 연산자가 제일 앞에오고 피연산자가 연달아 위치한다. [+ab]
postfix : 피연산자가 연달아 위치하고 연산자가 제일 뒤 [ab+]
EX )
infix : A * B / C * ( D + E ) ^A 라고할때
postfix :
A * B / C * ( ( D + E) ^ A )
( A * B ) / C * ( ( D + E) ^ A )
(( A * B ) / C ) * ( ( D + E) ^ A )
((( A * B ) / C ) * ( ( D + E) ^ A ))
AB*C/DE+A^*
A=1
B=2
C=3
D=4
E=5
postfix와 infix의 결과값은 같게 나온다
prifix :
A * B / C * ( D + E ) ^ A
((( A * B ) / C ) * ( ( D + E) ^ A ))
/*ABC*^+DEA
prifix의 결과값도 위것들과 동일하게 나온다.