- typedef struct StackNode{
- ElemType data;
- StackNode *next;
- }StackNode,*LinkStackPtr;
- typedef struct LinkStack{
- StackNode *top;
- int count;
- }LinkStack;
- void push(LinkStack *S,ElemType e){
- LinkStackPtr s = (LinkStackPtr)malloc(sizeof(StackNode));
- s->data = e;
- s->next = S->top;
- S->top = s;
- S->count++;
- }
- bool pop(LinkStack *S,ElemType *e){
- if(S->top == NULL){
- return false;
- }
- *e = S->top->data;
- LinkStackPtr q = S->top;//生成一個新的指向元素結點的指針,而不是一個棧指針
- S->top = q->next;
- free(q);//釋放指針
- S->count--;
- }