1、棧的鏈式存儲結構指針
1.棧的鏈式存儲結構code
代碼實現:blog
typedef struct StackNode{ ElemType data; // 存放棧的數據 struct StackNode *next; }StackNode, *LinkStack; typedef struct LinkStack{ LinkStackPrt top; // top指針 int count; // 棧元素計數器 }
2.進棧操做變量
對於棧鏈的Push操做,假設元素值爲e的新結點是s,top爲棧頂指針,咱們獲得以下代碼:方法
Status Push(LinkStack *s, ElemType e){ LinkStackPtr p = (LinkStackPtr) malloc(sizeof(StackNode)); p->data = e; // 將要入棧的新結點e賦給p的數據域 p->next = s->top; // 將p的next指向top s->top = p; // 而後將p賦給top s->count++; // 棧元素個數加1 return OK; }
3.出棧操做im
Pop操做,假設變量p用來存儲要刪除的棧頂結點,將棧頂指針下移移位,最後釋放p便可鏈表
Status Pop(LinkStack *s, ElemType e){ LinkStackPtr p; if(StackEmpty(*s)){ return ERROR; } *e = s->top->data; p = s->top; s->top = s->top->next; free(p); s->count--; return OK; }
本文爲原創文章,若是對你有一點點的幫助,別忘了點贊哦!比心!如需轉載,請註明出處,謝謝!next