1. typedef struct StackNode{ 
  2.     ElemType data; 
  3.     StackNode *next; 
  4. }StackNode,*LinkStackPtr; 
  5.  
  6. typedef struct LinkStack{ 
  7.     StackNode *top; 
  8.     int count; 
  9. }LinkStack; 
  10.  
  11. void push(LinkStack *S,ElemType e){ 
  12.     LinkStackPtr s = (LinkStackPtr)malloc(sizeof(StackNode)); 
  13.     s->data = e; 
  14.     s->next = S->top; 
  15.     S->top = s; 
  16.     S->count++; 
  17. bool pop(LinkStack *S,ElemType *e){ 
  18.     if(S->top == NULL){ 
  19.         return false
  20.     } 
  21.     *e = S->top->data; 
  22.     LinkStackPtr q = S->top;//生成一个新的指向元素结点的指针,而不是一个栈指针  
  23.     S->top = q->next; 
  24.     free(q);//释放指针  
  25.     S->count--;