栈的数据结构定义及算法
来源:互联网 发布:液体卫生巾 知乎 编辑:程序博客网 时间:2024/05/16 14:22
顺序栈定义
typedef struct{ int data[maxSize]; int top;}SqStack;
顺序栈的基本操作
void initStack(Sqstack &st){ st.top = -1;}判断栈为空
int isEmpty(SqStack st){if(st.top == -1)return 1;elsereturn 0;}
进栈操作
int Push(SqStack &st, int x){if(st.top == maxSize-1) return 0;++(st.top);st.data[st.top] = x; return 1;}
出栈操作
int Pop(SqStack &st, int &x){if(st.top == -1) return 0;else x = st.data[st.top] ; --(st.top); return 1;}
栈的应用
编写函数,求后缀表达式的值,其中后缀式存于一个数组exp中
例如 (a+b+c*d)/ e 其后缀式为 abcd*++e/
具体实现:
int op(int a, char op, int b){if(op == '+') return a+b;if(op == '-') return a-b;if(op == '*') return a*b;if((op == '/') &&(b != 0) return a/b;}int com(char exp[]){int i, a, b, c;int stack[maxSize];int top = -1;char op;for(i=0;exp[i] != '\0',++i){if(exp[i] >= '0' && exp[i] <= '9')stack[++top] = exp[i] - '0';else{op = exp[i];b = stack[top--];a = stack[top--];c = op(a,op,b);stack[++top] = c;} }return stack[top];}
- 栈的数据结构定义及算法
- 队列的数据结构定义及算法
- 数据结构---栈的定义
- 定义栈的数据结构
- C语言数据结构----栈的定义及实现
- 数据结构之栈的定义及python实现
- 第12周 数据结构和算法 线性表-8 单链表的定义及初始化
- 1.数据结构和算法的一些定义
- 算法的定义及算法的复杂度
- 数据结构之栈的定义
- 第二章 数据结构和算法(算法的定义)
- 数据结构与算法——栈的作用及应用
- 数据结构与算法(3)---Java语言实现:栈的单链表定义
- 数据结构与算法-线性表的定义与特点
- [数据结构与算法] 1,一些基本的定义
- 数据结构与算法之树&二叉树的定义
- 常用数据结构类型及定义
- 数据结构 各种树的定义及遍历方法
- 禁止web.config重写
- nginx支持perl的fastcGI功能
- Android 事件派发流程图
- java单例模式的误导性
- utf_8与GB2312编码的转换
- 栈的数据结构定义及算法
- hibernate映射文件生成数据库脚本过程,sequence 设定初始值 以及自定义增量问题
- Qt 开发,中文显示乱码
- openssl生成数字证书和密钥
- 水平垂直投影
- 设计模式 - 装饰模式
- cocos2dx使用CocosBuilder(编辑器)完成基础骨骼动画
- 程序相关网站
- fabric简介