入栈时先放元素在该指针,出栈时先取元素后移指针。
我觉得这个要看你设定的top指针是指向栈顶元素,还是栈顶元素的下一个位置。
如果top指向栈顶元素,那么入栈时应该先修改指针再放元素;
如果top指向栈顶元素的下一个位置,那么入栈时应该先放元素再修改指针。
push(){
arr[i] = 1;
i++;
}
pop()
{
i--;
return arr[i];
}
所以入栈是先放元素在改指针,出栈先改指针在去元素
1、进栈(PUSH)算法
①若TOP≥n时,则给出溢出信息,作出错处理(进栈前首先检查栈是否已满,满则溢出;不满则作②);
②置TOP=TOP+1(栈指针加1,指向进栈地址);
③S(TOP)=X,结束(X为新进栈的元素);
2、退栈(POP)算法
①若TOP≤0,则给出下溢信息,作出错处理(退栈前先检查是否已为空栈, 空则下溢;不空则作②);
②X=S(SOP),(退栈后的元素赋给X);
③TOP=TOP-1,结束(栈指针减1,指向栈顶)。