博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
模拟实现链栈
阅读量:5778 次
发布时间:2019-06-18

本文共 1903 字,大约阅读时间需要 6 分钟。

#include
#include
#include
#include
typedef int DataType;typedef struct node{ DataType data; struct node* pNext;}*PNode,Node;typedef struct linkStack{ PNode top; size_t sz;}*LinkStack;LinkStack creat(){ LinkStack lstack = (LinkStack)malloc(sizeof(struct linkStack)); if (NULL == lstack) { exit(0); } lstack->top = nullptr; lstack->sz = 0; return lstack;}int IsEmpty(LinkStack lstack){ assert(lstack); if (nullptr == lstack->top || 0 == lstack->sz) { return 1; } return 0;}PNode getTop(LinkStack lstack){ if (lstack->sz == 0) { return nullptr; } return lstack->top;}int getSize(LinkStack lstack){ assert(lstack); return lstack->sz;}void PushStack(LinkStack lstack, DataType data){ assert(lstack); PNode newNode = (PNode)malloc(sizeof(Node)); if (NULL == newNode) { printf("内存分配失败!!"); exit(0); } newNode->data = data; newNode->pNext = getTop(lstack); lstack->top = newNode; lstack->sz++;}PNode PopStack(LinkStack lstack){ if (IsEmpty(lstack)) { return NULL; } PNode node = lstack->top; lstack->top = lstack->top->pNext; --(lstack->sz); return node;}void DestroyStack(LinkStack lstack){ if (IsEmpty(lstack)) { free(lstack); lstack = nullptr; printf("链栈已空,无需删除\n"); return; } do { PNode pTemp; pTemp = PopStack(lstack); free(pTemp); } while (lstack->sz > 0); printf("链栈销毁成功");}int main(){ LinkStack lstack = creat(); PushStack(lstack, 10); PushStack(lstack, 20); PushStack(lstack, 60); PushStack(lstack, 70); PushStack(lstack, 40); while (lstack->sz > 0) { printf("%d\t", PopStack(lstack)->data); } system("pause");}

转载于:https://www.cnblogs.com/readlearn/p/10806532.html

你可能感兴趣的文章
网站基本标签及css样式简介(2)
查看>>
cpu 100% mysql占用太多 优化mysql
查看>>
Hibernate二级缓存详解
查看>>
RichTextBox的使用
查看>>
数据库事物隔离级别详解
查看>>
【rzxt】什么?你说你电脑没有声音了?来帮你简单处理
查看>>
CAsyncSocket
查看>>
oracle comment on用法
查看>>
Gredle在window7中的下载及安装
查看>>
LINUX 安全运维 (三)
查看>>
Hadoo——1:搭建
查看>>
Maven学习总结(六)——Maven与Eclipse整合
查看>>
缓存对象cookie对象(asp.net技术)
查看>>
修改linux系统时间
查看>>
Python-集合
查看>>
Docker学习总结(2)——Docker实战之入门以及Dockerfile(二)
查看>>
Java基础学习总结(23)——GUI编程
查看>>
lua与javascript的相似之处
查看>>
swiper教程--swiper的基础使用(二十)
查看>>
Apache之AllowOverride参数详解
查看>>