博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
栈的c语言顺序实现(动态申请空间)
阅读量:4473 次
发布时间:2019-06-08

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

下图表示顺序栈中数据元素和栈指针之间的对应关系

#include
#include
#define SIZE 100 //栈的最大长度#define STEPTSIZE 10 //栈每次增长的长度typedef char ElemType;/*栈的定义*/typedef struct stack{ ElemType *base; ElemType *top; int stackSize;}stack;/*栈顶初始化*/void initAStack(stack *s){ s->base =(ElemType *)malloc(SIZE*sizeof(ElemType)); if(s->base == NULL) exit(0); s->top = s->base; s->stackSize = SIZE;}/*进栈*/void push(stack *s,ElemType e){ /*栈满*/ if( (s->top - s->base) == SIZE){ s->base = (ElemType *)realloc(s->base,(SIZE+STEPTSIZE)*sizeof(ElemType)); s->stackSize += STEPTSIZE; } *(s->top) =e; s->top++; }/*遍历*/void traverseStack(stack s){ while(s.top != s.base){ s.top--; printf("%c\t",*s.top); } printf("\n"); }/*出栈*/void pop(stack *s){ char *tem; tem = s->top; s->top--; free(tem);}void main(){ stack s; initAStack(&s); push(&s,'a'); push(&s,'b'); push(&s,'c'); push(&s,'d'); push(&s,'e'); traverseStack(s); pop(&s); traverseStack(s); }

 

 

 

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/capability/p/3356836.html

你可能感兴趣的文章
c mysql 时间段查询_mySql 时间段查询
查看>>
mysql sql乱码怎么解决_MYSQL数据库导入SQL文件出现乱码如何解决
查看>>
mysql的存储过程与事务_mysql的存储过程与事务入门
查看>>
java程序员闯关题网站_Java程序员每周必逛的十大学习网站
查看>>
python面试装饰器_Python测开面试题之装饰器
查看>>
flashcache mysql_flashcache的实现与分析
查看>>
linux shell 里面执行python 程序_Linux下编写脚本Shell和Python的区别?
查看>>
python中if elif语句优化_python – 最有效的方式做一个if-elif-elif-else语句当else做的最多?...
查看>>
win10 配置 maven_home 一会儿成功一会儿失败_在macbook上运行移动硬盘里的win10和macos...
查看>>
python怎么画多重饼状图_Python通过matplotlib画双层饼图及环形图简单示例
查看>>
棋盘最短路径 python_Dijkstra 最短路径算法 Python 实现
查看>>
eclipse配置mysql教程_在Eclipse连接mysql-----配置jbdc_MySQL
查看>>
java map合并_java 实现合并map示例Demo1
查看>>
java 8 string_String.join() --Java8中String类新增方法
查看>>
java 布局教程_java布局学习(新)
查看>>
Random Access Iterator
查看>>
Harry And Dig Machine
查看>>
Cake Robbery
查看>>
Magician
查看>>
GT and set
查看>>