棧的鏈式存儲

 

  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--; 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章