1 s1空:S1的栈顶等于栈底 s2空:s2的栈顶等于栈底
2 s1满:S1的栈顶等于S2的栈顶 s2满:S2的栈顶等于S1的栈顶
#include
#define TYPE_S1 1
#define TYPE_S2 -1
#define STACK_SIZE 20
void StackPush(int **stackTop, int elmnt, int type)
{
**stackTop = elmnt;
*stackTop += type;
}
void main()
{
int stack[STACK_SIZE] = {0};
int *S1Top = &stack[0], *S2Top = &stack[STACK_SIZE - 1];
int i, input =0;
for (i = 0; i < 20; i++)
{
printf("请输入一个整数:");
scanf("%d", &input);
if(input % 2 ==0)
{
StackPush(&S1Top, input, TYPE_S1);
}
else
{
StackPush(&S2Top, input, TYPE_S2);
}
if(S1Top == S2Top)
{
printf("堆栈已满\n");
break;
}
}
return;
}