鏈棧的基本操作
阿新 • • 發佈:2018-10-18
ack 基本 links ext 新節點 spa get data 數據
1 //鏈棧是運算受限的單鏈表,只能在鏈表頭部進行操作 2 typedef struct StackNode{ 3 SElemType data; 4 struct StackNode *next; 5 }StackNode,*LinkStack; 6 LinkStack S; 7 //鏈棧的初始化 8 void InitStack(LinkStack &S){ 9 S=NULL; 10 return OK; 11 } 12 //判斷鏈棧是否為空 13 Status StackEmpty(LinkStack S){ 14 if(S==NULL) returnTURE; 15 else return FALSE; 16 } 17 //鏈棧的入棧 18 Status Push(LinkStack &S,SElemType e){ 19 p=new StackNode; //生成新節點 20 p->data=e; //將新節點的數據域為e 21 p->next=S; //將新節點插入棧頂 22 S=p; //修改棧頂指針 23 return OK; 24 } 25 //鏈棧的出棧 26 Status Pop(LinkStatus &S,SElemType &e){27 if(S==NULL) return ERROR; 28 e=S->data; 29 p=S; 30 S=S->next; 31 free(p); 32 return OK; 33 } 34 //取棧頂元素 35 SElemTtype GetTop(LinkStack S){ 36 if(S!=NULL) 37 return S->data; 38 }
鏈棧的基本操作