LinkStack。h
# include“LinkStack.h” # include“LinkList.h” # include“malloc.h” typedef struct _tag_LinkStackNode { LinkListNode节点; void *项; }TLinkStackNode; LinkStack * LinkStack_Create () { 返回LinkList_Create (); } 空白LinkStack_Destroy (LinkStack *栈) { LinkStack_Clear(栈); LinkList_Destroy(栈); } 空白LinkStack_Clear (LinkStack *栈) { 而(LinkStack_Size(栈)> 0) { LinkStack_Pop(栈); } } int LinkStack_Push (LinkStack *栈,void *项) { TLinkStackNode *节点=(TLinkStackNode *) malloc (sizeof (TLinkStackNode)); int ret=((项目!=0)& &(节点!=0)); 如果(ret) { 节点->项目=项目; ret=LinkList_Insert(栈(LinkListNode *)节点,0); } 如果(ret) { 免费(节点); } 返回受潮湿腐烂; } void * LinkStack_Pop (LinkStack *栈) { TLinkStackNode *节点=(TLinkStackNode *) LinkList_Remove(堆栈,0); void * ret=0; 如果(节点!=0) { ret=节点->项目; 免费(节点); } 返回受潮湿腐烂; } void * LinkStack_Top (LinkStack *栈) { TLinkStackNode *节点=(TLinkStackNode *) LinkList_Remove(堆栈,0); void * ret=0; 如果(节点!=0) { ret=节点->项目; } 返回受潮湿腐烂; } int LinkStack_Size (LinkStack *栈) { 返回LinkList_Length(栈); }