//含有头结点 typedef struct StNode { Elementtype data; StNode *next; }liStack; //初始操作 void initLiStack( StNode *&lst) { lit=(liStack*)malloc(sizeof(liStack)); lit->next=NULL; } bool isStEmpyt(StNode *lst) { return (lst->next==NULL) } void InsertSt(Elementtype a,liStack *&lst) { liStack *p; p=(liStack*)malloc(sizeof(liStack)); p->data=a; p->next=NULL; lst->next=p; } int popSa(liStack *&lst,Element &x) { liStack *p; if (lst->next==NULL) { return 0; } p=lst->next; x=p->data; lst->next=p->next; delete p; return 1; }