普通栈
来源:互联网 发布:2016淘宝女装店名 编辑:程序博客网 时间:2024/04/28 19:57
#include <stdio.h>#include <stdlib.h>#define N 3struct stack{int stacksize;char * base;char * top;};int init(struct stack * s){s->base = (char *)malloc(N * sizeof(char));s->top=s->base;s->stacksize=N;return 0;}int push(struct stack * s,char elem){if(s->top-s->base<N){*(s->top)=elem;s->top++;printf("%c入栈!\n",elem);return 0;}else{printf("栈满!入栈失败!\n");return -1;}}int pop(struct stack * s){if(s->top==s->base){printf("栈空!删除失败!\n");return -1;}s->top--;printf("%c出栈!\n",*(s->top));return 0;}int getTop(struct stack * s){if(s->top==s->base){printf("栈空!获取栈顶元素失败!\n");return -1;}printf("当前栈顶元素为:%c\n",*(s->top-1));return 0;}int getLength(struct stack * s){return s->top-s->base;}void display(struct stack * s){if(s->top==s->base){printf("栈空!获取栈顶元素失败!\n");return;}printf("当前栈中所有元素为");int i=1;while(i<=s->top-s->base){printf("%c ",*(s->top-i));i++;}printf("\n");}int main(){struct stack * s;s=(struct stack *)malloc(sizeof(struct stack));init(s);push(s,'a');push(s,'b');push(s,'c');getTop(s);display(s);push(s,'d');printf("当前栈的长度为:%d\n",GetLength(s));pop(s);pop(s);pop(s);pop(s);return 0;}
0 0
- 普通栈
- 普通
- 普通
- 栈的顺序存储结构(普通版)
- 普通程序员该如何进阶为全栈工程师?
- 普通日志
- 普通の‘~~
- 普通导出
- 普通二叉排序树
- 普通AOP
- 普通报表
- 普通按钮
- 普通的日子不普通!
- (6)OGNL--1:访问值栈中的普通属性、对象属性、普通方法、静态方法、自写set、map、list
- cc2541的SCL和SDA在协议栈中用作普通IO口
- Z-stack协议栈中路由与普通节点的区别
- 用C#实现一个普通计算器——栈和队列的应用
- Z-stack协议栈中路由与普通节点的区别
- Teradata 学习笔记4
- [教程] Mesh Baker的基本操作与功能演示
- 【转】MFC中滑动块的操作
- 数组中的逆序对
- oracle 临时表空间的增删改查
- 普通栈
- HDU2234:无题I(IDA星)
- listView 模仿ios的上拉刷新下拉加载更多
- java实现定时任务的三种方法
- Error listenerStart问题的处理
- openssl 加密文件的完整实现代码
- 在无头结点的动态单链表上实现线性表操作Delete(L,i)
- fgets函数与fputs函数
- 肯定之后又旋即否定,我的心总是不停的做着相反的选择