1. 程式人生 > >鏈棧的基本操作

鏈棧的基本操作

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)    return
TURE; 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 }

鏈棧的基本操作