LinkStack.h
成都创新互联云计算的互联网服务提供商,拥有超过13年的服务器租用、资阳托管服务器、云服务器、虚拟空间、网站系统开发经验,已先后获得国家工业和信息化部颁发的互联网数据中心业务许可证。专业提供云主机、虚拟空间、域名注册、VPS主机、云服务器、香港云服务器、免备案服务器等。
#ifndef LINKSTACK_H #define LINKSTACK_H typedef void LinkStack; LinkStack* LinkStack_Create(); void LinkStack_Destroy(LinkStack* stack); void LinkStack_Clear(LinkStack* stack); int LinkStack_Push(LinkStack* stack, void* item); void* LinkStack_Pop(LinkStack* stack); void* LinkStack_Top(LinkStack* stack); int LinkStack_Size(LinkStack* stack); #endif // LINKSTACK_H
LinkStack.c
#include "LinkStack.h" #include "LinkList.h" #include "malloc.h" typedef struct _tag_LinkStackNode { LinkListNode node; void *item; }TLinkStackNode; LinkStack* LinkStack_Create() { return LinkList_Create(); } void LinkStack_Destroy(LinkStack* stack) { LinkStack_Clear(stack); LinkList_Destroy(stack); } void LinkStack_Clear(LinkStack* stack) { while(LinkStack_Size(stack) > 0) { LinkStack_Pop(stack); } } int LinkStack_Push(LinkStack* stack, void* item) { TLinkStackNode *node = (TLinkStackNode *)malloc(sizeof(TLinkStackNode)); int ret = ((item != 0) && (node != 0)); if(ret) { node->item = item; ret = LinkList_Insert(stack,(LinkListNode *)node,0); } if(!ret) { free(node); } return ret; } void* LinkStack_Pop(LinkStack* stack) { TLinkStackNode *node = (TLinkStackNode *)LinkList_Remove(stack,0); void *ret = 0; if(node != 0) { ret = node->item; free(node); } return ret; } void* LinkStack_Top(LinkStack* stack) { TLinkStackNode *node = (TLinkStackNode *)LinkList_Remove(stack,0); void *ret = 0; if(node != 0) { ret = node->item; } return ret; } int LinkStack_Size(LinkStack* stack) { return LinkList_Length(stack); }
网页标题:【C语言数据结构】链栈
分享网址:https://www.cdcxhl.com/article38/gghspp.html
成都网站建设公司_创新互联,为您提供响应式网站、做网站、定制网站、软件开发、网站维护、网站营销
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联