数据结构——堆栈的基本操作
来源:互联网 发布:cf刷枪软件永久 编辑:程序博客网 时间:2024/06/05 06:52
堆栈的实现方式有两种
1.数组为基础实现 —— 顺序堆栈
2.单向链表为基础实现 —— 链式堆栈
一、顺序堆栈
结构体定义
/* MaxStackSize 堆栈存放最大数 top:栈顶 Tips: top 等于-1时,堆栈为空,并且始终指向堆栈最上面的元素*/#define MaxStackSize 100typedef int DataType; //什么类型都可以,暂时定为inttypedef struct { DataType stack[MaxStackSize]; int top;}SeqStack;
顺序堆栈的初始化
void SeqStackInit(SeqStack *S){ S->top = -1; //将top指针设为-1,即不指向任何元素,也就是堆栈为空}
入栈操作
/* 返回1:入栈成功 0: 入栈失败*/int SeqStackPush(SeqStack *S, DataType x){ if (S->top == MaxStackSize - 1) //判断堆栈是否为满 { printf("堆栈以满"); return 0; } else { //放入到栈顶 S->stack[S->top++] = x; return 1; }}
出栈操作
/* return 1:success 0: fail x:带回被Pop元素的值*/int SeqStackPop(SeqStack *S, DataType *x){ if (S->top == -1) { printf("堆栈为空"); return 0; } else { //赋值给x *x = S->stack[S->top]; //top指向下一个元素 S->top--; return 1; }}
还有其他的一些操作
/* 取栈顶元素*/DataType SeqStackGetTop(SeqStack S){ return S.stack[S.top];}/* 初始化堆栈*/void SeqStackInit(SeqStack *S){ S->top = -1; //也就是将堆栈设为空}/* 判断堆栈是否为空 返回值1:不为空 返回值0:为空*/int SeqStackNotEmpty(SeqStack *S){ if (S->top < 0) { return 0; } else { return 1; }}
阅读全文
0 0
- 数据结构——堆栈的基本操作
- 数据结构学习之路3 堆栈的基本操作
- 堆栈的基本操作
- 数据结构——图的基本操作
- 数据结构——单链表的基本操作
- 数据结构——栈的基本操作
- 数据结构——单链表的基本操作
- 数据结构——单链表的基本操作
- 数据结构——栈的基本操作
- 数据结构——栈的基本操作
- 数据结构——队列的基本操作
- 数据结构——字符串的基本操作
- 数据结构—基本树的操作小结
- 堆栈的部分基本操作
- 基本数据结构的python实现---堆栈
- 数据结构——堆栈
- 数据结构——堆栈
- 基本数据结构之堆栈
- 4.go开源cache2go项目笔记——cacheitem文件
- 数据传输-嵌入式
- Practise
- Python+DNS+MySQL
- 二.java多线程之线程状态转换
- 数据结构——堆栈的基本操作
- jmeter请求https地址
- 数据迁移
- Java中实现十进制数转换为二进制的几种办法
- ubuntu 下安装MATLAB2016出现install无法访问的权限问题
- DuplicateFileException: Duplicate files copied in APK
- 6.go开源cache2go项目笔记——cache_test文件
- codeforces 863B
- 练习题6