[说明] 用链式存储结构实现的栈称为链栈。若链栈元素的数据类型为datatype,
问题:
[说明]
用链式存储结构实现的栈称为链栈。若链栈元素的数据类型为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;