栈的操作C语言

上传人:xgs****56 文档编号:9864267 上传时间:2020-04-08 格式:DOC 页数:7 大小:202.91KB
返回 下载 相关 举报
栈的操作C语言_第1页
第1页 / 共7页
栈的操作C语言_第2页
第2页 / 共7页
栈的操作C语言_第3页
第3页 / 共7页
点击查看更多>>
资源描述
C 语言实现 栈的各种操作 调试运行成功有截图 后附代码 代码 include include include define INIT SIZE 5 初始大小 define INCREASE SIZE 5 每次增加大小 typedef struct int top int base int stacksize sqstack 这是一个栈的结构体 int Creat stack sqstack s int Gettop stack sqstack s int e int Pop stack sqstack s int e int Push stack sqstack s int e int Destroy stack sqstack s int Getsize stack sqstack s void main int m e n f i f1 k 0 int a1 a2 a3 a4 a5 a6 a7 是用来接函数的返回值的 int e1 e2 e3 sqstack ss ss base ss top NULL 初始化 e1 e2 e3 指针声明时最好初始化一下 若果没有初始化 直接 e1 是错误的 printf 顺序栈的基本操作 n printf 1 创建一个空栈 n printf 2 销毁栈 n printf 3 单个入栈 n printf 4 单次出栈 n printf 5 查询栈顶元素 n printf 6 多数入栈 n printf 7 集体出栈 n printf 8 查询栈容量 n printf 9 退出 n loop printf 请选择 n scanf d switch m case 1 a1 Creat stack if a1 0 printf 栈已经存在 请先销毁原栈 n break printf OK 已经成功建立一个空栈 n break case 2 a5 Destroy stack if a5 0 printf 栈不存在 n break else printf OK 销毁成功 n break case 3 printf 请输入你要入栈的元素 整型 n scanf d a2 Push stack if a2 0 printf 栈不存在 请先创建栈 n break printf OK 入栈成功 n break case 4 a3 Pop stack if a3 1 printf 栈不存在 请先创建栈 n break else if a3 0 printf 栈为空 n break else printf OK 出栈成功 出栈元素为 printf d e1 break case 5 a4 Gettop stack if a4 1 printf 栈不存在 请先创建栈 n break else if a4 0 printf 栈为空 n break else printf OK 查询栈顶元素为 printf d n e2 break case 6 printf 请输入您要入栈的个数 n scanf d for i 0 ibase s top return 0 s base int malloc INIT SIZE sizeof int base 本来是指向 int 型的指针 若把后面一长串内存强制为 int 则划分为一小块 一小块 base 也变为指向下一个 int 型 s top s base s stacksize INIT SIZE return 1 int Gettop stack sqstack s int e if s base NULL return 1 else if s base s top return 0 else e s top 1 这个 top 指针没有改变 return 1 int Push stack sqstack s int e if s base NULL return 0 栈不存在 if s top s base s stacksize s base int realloc s base s stacksize INCREASE SIZE sizeof int realloc 增加一段内存 s stacksize INCREASE SIZE s top s base s stacksize 确保 top 指向栈顶 之前 top 超了范围 s top e s top return 1 int Pop stack sqstack s int e if s base NULL return 1 else if s top s base return 0 else s top e s top 要先降低 top 再返回 top 已经改变 return 1 int Destroy stack sqstack s if s base NULL return 0 栈不存在 free s base s top s base NULL return 1 int Getsize stack sqstack s if s base NULL return 0 栈不存在 else return s stacksize
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!