#include <iostream> using namespace std; #define StackSize 100 typedef char DataType; typedef struct{ DataType data[StackSize]; int top; }SeqStack; void InitStack(SeqStack *S) {//栈初始化 S->top = -1; } int StackEmpty(SeqStack *S) {//判断栈是否为空 return S->top == -1; } int StackFull(SeqStack *S) {//判断栈满 return S->top == StackSize - 1; } void Push(SeqStack *S, DataType x) {//入栈 if (StackFull(S)) perror("Stack overflow"); S->data[S->top] = x; ++ S->top; } DataType Pop(SeqStack *S) {//出栈 if (StackEmpty(S)) perror("Stack underflow"); return S->data[S->top]; S->top --; } DataType StackTop(SeqStack *S) {//取栈顶元素 if (StackEmpty(S)) perror("Stack is empty"); return S->data[S->top]; } int main() { SeqStack *S; InitStack(S); Push(S, 'a'); Push(S, 'b'); cout << StackTop(S); return 0; }
呃,知道了。入栈和出栈写的都有问题。 。