链式栈
来源:互联网 发布:武汉java讲师 编辑:程序博客网 时间:2024/06/15 07:10
liskstack.h头文件
#ifndef _MY_LINKSTACK_H_#define _MY_LINKSTACK_H_typedef void LinkStack;LinkStack* LinkStack_Create();void LinkStack_Destroy(LinkStack* stack);int LinkStack_Push(LinkStack* stack, void* item);void LinkStack_Clear(LinkStack* stack);void* LinkStack_Pop(LinkStack* stack);void* LinkStack_Top(LinkStack* stack);int LinkStack_Size(LinkStack* stack);#endif
liskstack.h实现文件
#include "stdlib.h"#include "stdio.h"#include "string.h"#include "linkstack.h"#include "linklist.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); } return;}int LinkStack_Push(LinkStack* stack, void* item){ int ret = 0; TLinkStackNode *pTe = (TLinkStackNode * )malloc(sizeof(TLinkStackNode)); if(pTe == NULL) { return - 1; } pTe->item = item; ret = LinkList_Insert(stack, (LinkListNode *)(&pTe->node), 0); if(ret != 0) { free(pTe); } return ret;}void* LinkStack_Pop(LinkStack* stack){ void *myItem = NULL; TLinkStackNode *pTmp = NULL; pTmp = (TLinkStackNode *)LinkList_Delete(stack, 0); if(pTmp == NULL) { return NULL; } if(pTmp == NULL) { return NULL; } myItem = pTmp->item; if(pTmp != NULL) { free(pTmp); } return myItem;}void* LinkStack_Top(LinkStack* stack){ void *myItem = NULL; TLinkStackNode *pTmp = NULL; pTmp = (TLinkStackNode *)LinkList_Get(stack, 0); if(pTmp == NULL) { return NULL; } myItem = pTmp->item; return myItem;}int LinkStack_Size(LinkStack* stack){ return LinkList_Length(stack);}
阅读全文
0 0
- 链式栈
- 链式栈
- 链式栈
- 链式栈
- 链式栈
- 链式栈
- 链式栈
- 栈链式
- 链式栈
- 链式栈
- 链式栈
- 链式栈
- 栈-链式
- 链式栈
- 链式栈
- 链式栈
- 链式栈
- 链式栈
- UVa 714 Copying Books——二分最大值最小化
- C_复习心得 第15章 位操作
- array_column() 函数用法
- bzoj1759: Let there be rainbows!
- 【hibernate】——hql简单属性+实体对象查询
- 链式栈
- caffe 重新用Python编译tripletloss、fine turning
- 网站统计中的数据收集原理及实现
- C#171课的主要内容
- java 8 中文API
- Java + 线程系列之join(七)
- 学习笔记——JAVA线程<4>线程的同步
- [command]bash基本命令
- java.util.Date和java.sql.Date的区别和相互转化