数据结构和算法--栈的数组实现
来源:互联网 发布:王者荣耀网络不稳定 编辑:程序博客网 时间:2024/06/06 09:49
//栈的顺序存储(与顺序表类似)#include <stdio.h>#include <stdlib.h>#define N 32//定义数据类型typedef int datatype_t;//定义结构体typedef struct {datatype_t data[N];int top;}seqstack_t;//创建一个空的栈seqstack_t *seqstack_create(){seqstack_t *s;s = (seqstack_t *)malloc(sizeof(seqstack_t));//s->top = 0;s->top = -1;return s;}//判断栈是否为满int seqstack_full(seqstack_t *s){//return s->top == N ? 1 : 0;return s->top == N - 1 ? 1 : 0; }//判断栈是否为空int seqstack_empty(seqstack_t *s){//return s->top == 0 ? 1 : 0;return s->top == -1 ? 1 : 0;}//入栈(压栈)int seqstack_push(seqstack_t *s, datatype_t value){if(seqstack_full(s)){printf("seqstack is full\n");return -1;}//s->data[s->top] = value;//s->top++;s->top++;s->data[s->top] = value;return 0;}//打印数据int seqstack_show(seqstack_t *s){int i = 0;#if 0for(i = 0; i < s->top; i++){printf("%d ", s->data[i]);}putchar(10);#endif#if 1for(i = 0; i <= s->top; i++){printf("%d ", s->data[i]);}#endifputchar(10);return 0;}//出栈(弹栈)datatype_t seqstack_pop(seqstack_t *s){datatype_t value;if(seqstack_empty(s)){printf("seqstack is empty\n");return -1;}#if 0s->top--;value = s->data[s->top];#endif#if 1value = s->data[s->top];s->top--;#endifreturn value;}int main(int argc, const char *argv[]){seqstack_t *s = seqstack_create();seqstack_push(s, 10);seqstack_push(s, 20);seqstack_push(s, 30);seqstack_push(s, 40);seqstack_push(s, 50);seqstack_show(s);printf("%d\n", seqstack_pop(s));seqstack_show(s);printf("%d\n", seqstack_pop(s));seqstack_show(s);printf("%d\n", seqstack_pop(s));seqstack_show(s);printf("%d\n", seqstack_pop(s));seqstack_show(s);printf("%d\n", seqstack_pop(s));seqstack_show(s);printf("%d\n", seqstack_pop(s));seqstack_show(s);return 0;}
0 0
- 数据结构和算法--栈的数组实现
- 数据结构和算法--队列的数组实现
- 算法与数据结构 其二 数组和链表 的实现
- 算法和数据结构学习(一)基于数组的栈的实现
- 《数据结构与算法分析》—栈的链表和数组实现(C语言)
- 数据结构和算法--栈的链式实现
- [数据结构与算法分析] 栈的数组实现
- 数据结构和算法------数组
- (数据结构与算法分析 三)------栈的实现(包括链栈和数组实现栈 Java语言描述)
- 【数据结构】栈-数组的实现
- [数据结构] 栈的数组实现
- 数组实现栈的数据结构
- 【数据结构】栈的数组实现
- 【数据结构】栈的数组实现
- 数据结构数组相关算法和螺旋,蛇形,拉丁矩阵的实现
- 数据结构和算法数组系列---求数组的笛卡尔积
- 【数据结构和算法】【栈】顺序栈的代码实现
- 数据结构和算法——栈的实现
- css3第三天
- ExpandableListView的用法
- Atitit 图像处理之理解卷积attilax总结
- scala类型系统:1) 类型与类
- druid升级1.0.26遇到的连接闲置断开的问题
- 数据结构和算法--栈的数组实现
- Android自定义控件系列(三)—底部菜单(上)
- 利用Tag接口自定义标签扩展
- 饮水思源
- vcg数据结构1
- Atitit图片复制父目录给你设计的实现 基于win 图片浏览器
- 51nod 1205 流水线调度
- 数据结构和算法--栈的链式实现
- C语言性能优化——使用位运算