[说明] 用链式存储结构实现的栈称为链栈。若链栈元素的数据类型为datatype,以LinkStack记链栈结构,其类型定义为:typedef struct node{ datatype data;stmct node * next;} StackNode, * LinkStack; 由于栈的主要操作都是在栈顶进行的,因此我们把链表的头部作为栈顶。设top为栈顶指针,即:LinkStack top。 下面各函数的功能说明如下: (1)LinkStack Init_LinkStack():建立并返回空的链栈; (2)int Empty_LinkStack(LinkStack top):判断top所指链栈是否空; (3)LinkStack Push_LinkStack(LinkStacktop,datatypex):将数据x压人top所指链栈的栈顶,返回新栈指针; (4)LinkStack Pop_LinkStack (LinkStacktop, datatype*x):弹出top所指链栈的栈顶元素x,返回新栈指针。[函数]LinkStaek Init_LinkStack( ){ returnNULL;int Empty_LinkStack ( LinkStaek top) if(top = = NULL) return 1; else return 0;LinkStaek Push_LinkStaek( LinkStaektop, datatype X){ StaekNode *s; s=malloc (sizeof(StaekNode) ); (1) = x; (2) = top; (3) ; return top;}LinkStaek Pop_LinkStack (LinkStacktop, datatype * x){ StaekNode *p; if(top = = NULL) return NULL; else{* x = (4) ;p = top; (5) ;free (p);return top; }}