博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
栈的操作
阅读量:6358 次
发布时间:2019-06-23

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

#include 
#include
typedef struct node{ int data; struct node* pnext;}node,*pnode;typedef struct stack{ pnode ptop; pnode pbottom;}stack,*pstack;void initstack(pstack ps);void push(pstack ps , int idata);void pop(pstack ps);void traverse(pstack ps);int main(){ pstack S = (pstack)malloc(sizeof(stack)); push(S,1); push(S,2); push(S,3); traverse(S); pop(S); pop(S); traverse(S); return 0;}void initstack(pstack ps){ ps -> ptop = (pnode) malloc(sizeof(node)); if(NULL == ps -> ptop){ puts("error!"); exit(-1); } ps -> pbottom = ps -> ptop ; ps -> ptop -> pnext = NULL;}void push(pstack ps,int idata){ pnode pnew = (pnode)malloc(sizeof(node)); if(NULL == pnew){ puts("error!"); exit(-1); } pnew->data = idata; pnew->pnext = ps->ptop; ps->ptop = pnew;}void traverse(pstack ps){ pnode p = ps->ptop; while(p != ps->pbottom){ printf("%d ",p->data); p = p->pnext; } puts("");}int empty(pstack ps){ if(NULL == ps->ptop) return 1; else return 0;}void pop(pstack ps){ if(empty(ps)){ puts("error!"); exit(-1); } pnode p = ps->ptop; ps->ptop = p->pnext; free(p);}

转载于:https://www.cnblogs.com/fisher2010/archive/2012/05/01/2477797.html

你可能感兴趣的文章
rpm软件包管理管理
查看>>
用smem命令查看linux下进程对物理内存的占用
查看>>
Redis入门系列之安装redis和配置redis
查看>>
20140527_学习日记
查看>>
es6学习笔记
查看>>
monggo安装与简单操作
查看>>
保障MySQL数据安全的14个最佳方法
查看>>
HTML <canvas> 标签
查看>>
Windows服务器配置与管理------ 磁盘管理
查看>>
c# WinForm 中英文智能提示
查看>>
Swift2.0(14)引用类型与数值类型
查看>>
基本的排序算法
查看>>
我的友情链接
查看>>
053-017
查看>>
nginx运行检测脚本
查看>>
lvs+keepalive构建负载均衡及服务器集群之三测试高可用LVS负载均衡集群系统
查看>>
Maven本地分仓
查看>>
SQL语句优化
查看>>
Redis原理主从配置解析
查看>>
Linux基本命令——备份与恢复文档
查看>>