温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

【C语言数据结构】链栈

发布时间:2020-06-16 03:22:08 来源:网络 阅读:771 作者:沃特water 栏目:系统运维

LinkStack.h

#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); }


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI