单链表实现栈
2015-10-15 17:39
99 查看
#include <stdio.h> #include <stdlib.h> typedef char stack_element_t; typedef struct stack_node_s { stack_element_t element; struct stack_node_s *restp; }stack_node_t; /*Stack top pointer*/ typedef struct { stack_node_t *topp; }stack_t; void push(stack_t *sp, stack_element_t c) { stack_node_t *newp; /*Creates and defines new node*/ newp = (stack_node_t*)malloc(sizeof(stack_node_t)); newp->element = c; newp->restp = sp->topp; /*Renew stack top pointer*/ sp->topp = newp; } stack_element_t pop(stack_t *sp) { stack_node_t *to_freep; stack_element_t ans; to_freep = sp->topp; ans = to_freep->element; sp->topp = to_freep->restp; free(to_freep); return ans; } int main(void) { stack_t s = {0}; push(&s, '2'); push(&s, '+'); push(&s, 'C'); push(&s, '/'); printf("\nEmptying stack: \n"); while(s.topp != NULL) printf("%c\n", pop(&s)); return 0; }
相关文章推荐
- 常用链接
- 洛谷P1012 拼数
- Linux的用户和用户组管理
- 按钮背景图片 大小 和 位置 设置。
- yii2 提示Module not inserted due to validation error.
- 全局404定义
- POJ 2718 Smallest Difference(DFS)
- android风格统一化修改上方标题栏颜色
- The database page size of 4096 bytes obtained from ASE is different from the database page size of 2
- 服务器配置(建站助手),使用MSFTP服务器FTP无法连接解决方法
- spring aop的案例(一)日志拦截
- Linux LVM硬盘管理及LVM扩容
- 信息安全系统设计基础第六周学习总结
- IIS防御小规模DDOS攻击实例(反向代理)
- hdu 2011
- 关于SandBox机制及文件读写的几种方式
- UICollectionView请求网络数据显示(Text)
- 【规范】javascript 变量命名规则
- How to get and set default Character encoding or Charset in Java
- SWOOL中使用WebSocke功能