数据结构之栈的实现--顺序栈(C语言)
2018-09-16 11:25
253 查看
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_40411915/article/details/82721433
学习参考: 严蔚敏: 《数据结构-C语言版》
要点:
栈(Stack)是限制在表的一端进行插入和删除运算的线性表,通常称插入、删除的这一端为栈顶(Top),另一端为栈底(Bottom)。当表中没有元素时称为空栈。限定只能在表的一端进行插入和删除运算的线性表(只能在栈顶操作)
基本操作
- 入栈
- 出栈
- 读栈顶元素值
- 建栈
- 栈满
- 栈空
- 清空栈
- 销毁栈
代码实现
栈结构定义:
[code]typedef struct { int* base; int top; int size; }SeqStack,* pStack;
建栈
[code]int initStack(pStack s, int size) { if(!s) return 0; if(size <1) size = 10; s->base = (int*)malloc(sizeof(int)*size); if(!s->base) return 0; s->top = 0; s->size = size; return 1; }
栈满
[code]int stackFull(pStack s) { if(!s) return -1; return s->top>s->size; }
栈空
[code]int stackEmpty(pStack s) { return s->top<=0; }
入栈
[code]int Push(pStack s,int data) { if(!s|| stackFull(s)) return 0; s->base[s->top] = data; s->top++; return 1; }
出栈
[code]int pop(pStack s,int* data) { if(!s || stackEmpty(s)) return 0; *data = s->base[s->top-1]; s->top--; return 1; }
读栈顶元素值
[code]int getTop(pStack s,int* data) { if(!s || stackEmpty(s)) return 0; *data = s->base[s->top-1]; return 1; }
清空栈
[code]int ClearStack(pStack s) { if(!s) return 0; s->top = 0; s->size = 0; return 1; }
销毁栈
[code]int destroyStack(pStack s) { int i = 0; if(!s) return 0; for(i=0; i<s->top; ++i) { free(s->base); s->base++; } s->top = -1; s->size = -1; return 1; }
测试代码
[code]#include <stdio.h> #include "SeqStack.h" int main() { SeqStack stack; int i =0, val = -1, tag=-1; initStack(&stack, 10); for(i=0; i<15; ++i) Push(&stack, i); pop(&stack, &val); getTop(&stack, &tag); printf("%d ...\n", tag); destroyStack(&stack); return 0; }
写在最后
文章记录本人学习所得, 如有所错误, 欢迎留言指出交流, 大神请键盘下留人 ! ! !
阅读更多
相关文章推荐
- 数据结构(严蔚敏)之一——顺序表之c语言实现
- 七、数据结构基础之顺序串C语言实现
- 数据结构之C语言实现顺序表(SeqList)无主函数
- C语言 数组的顺序表示与实现 数据结构
- [数据结构]顺序表的C语言简单实现
- 数据结构——顺序表的几个重要方法的C语言实现
- 数据结构之---C语言实现串的顺序存储
- 数据结构(严蔚敏)C语言实现---线性表的顺序存储
- c语言实现数据结构中顺序表的源代码
- 数据结构之循环队列(顺序队列)的实现(C语言)
- 数据结构 学习笔记之:顺序栈的C语言实现
- C语言实现顺序表-数据结构
- 一、数据结构基础之顺序表C语言实现
- 数据结构之---C语言实现二叉树的顺序存储
- 数据结构——顺序表(C语言实现)
- [C语言][数据结构]基础的线性表的顺序表示和实现
- 三、数据结构基础之顺序栈C语言实现
- 数据结构之---c语言实现栈的顺序存储
- [c语言]数据结构 顺序表的实现
- 一、数据结构基础之顺序表C语言实现