资源简介
中缀表达式转换为后缀表达式,并求值,(C语言
代码片段和文件信息
/***
*DynaSeqStack.cpp - 动态顺序栈,即栈的动态顺序存储实现
*
*
*题目:实验3-1 栈的动态顺序存储实现
*
*班级:
*
*姓名:
*
*学号:
*
****/
#include
#include
#include
#include
#include “DynaSeqStack.h“
const int STACK_INIT_SIZE = 100; // 初始分配的长度
const int STACKINCREMENT = 10; // 分配内存的增量
/*------------------------------------------------------------
操作目的: 初始化栈
初始条件: 无
操作结果: 构造一个空的栈
函数参数:
SqStack *S 待初始化的栈
返回值:
bool 操作是否成功
------------------------------------------------------------*/
bool InitStack(SqStack *s)
{
if (!(s->base = (ElemType *)malloc(STACK_INIT_SIZE*sizeof(ElemType))))
return false;
s->top = s->base;
s->stacksize = STACK_INIT_SIZE;
return true;
}
/*------------------------------------------------------------
操作目的: 清空栈
初始条件: 栈S已存在
操作结果: 清空栈S
函数参数:
SqStack *S 待清空的栈
返回值:
操作是否成功
------------------------------------------------------------*/
bool ClearStack(SqStack *S)
{
if (!S->base) return false;
S->top = S->base;
return true;
}
/*------------------------------------------------------------
操作目的: 销毁栈
初始条件: 栈S已存在
操作结果: 销毁栈S
函数参数:
SqStack *S 待销毁的栈
返回值:
无
------------------------------------------------------------*/
void DestroyStack(SqStack *s)
{
if (s->base)
{
free(s->base);
s->base = NULL;
}
}
/*------------------------------------------------------------
操作目的: 判断栈是否为空
初始条件: 栈S已存在
操作结果: 若S为空栈,则返回true,否则返回false
函数参数:
SqStack S 待判断的栈
返回值:
bool 是否为空
------------------------------------------------------------*/
bool StackEmpty(SqStack s)
{
return s.base == s.top;
}
/*------------------------------------------------------------
操作目的: 得到栈的长度
初始条件: 栈S已存在
操作结果: 返回S中数据元素的个数
函数参数:
SqStack S 栈S
返回值:
int 数据元素的个数
------------------------------------------------------------*/
int StackLength(SqStack S)
{
return S.top-S.base;
}
/*------------------------------------------------------------
操作目的: 得到栈顶元素
初始条件: 栈S已存在
操作结果: 用e返回栈顶元素
函数参数:
SqStack S 栈S
ElemType *e 栈顶元素的值
返回值:
bool 操作是否成功
------------------------------------------------------------*/
bool GetTop(SqStack s ElemType *e)
{
if (!s.base) return false;
*e = *(s.top-1);
return true;
}
/*------------------------------------------------------------
操作目的: 遍历栈
初始条件: 栈S已存在
操作结果: 依次对S的每个元素调用函数fp
函数参数:
SqStack S 栈S
void (*fp)() 访问每个数据元素的函数指针
返回值:
无
------------------------------------------------------------*/
void StackTraverse(SqStack S void (*fp)(ElemType))
{
if (S.base)
{
while (S.top != S.base)
{
printf(“%d\t“*(--S.top));
}
printf(“\n“);
}
}
/*------------------------------------------------------------
操作目的: 压栈——插入元素e为新的栈顶元素
初始条件: 栈S已存在
操作结果: 插入数据元素e作为新的栈顶
函数参数:
SqStack *S 栈S
ElemType e 待插入的数据元素
返回值:
bool 操作是否成功
------------------------------------------------------------*/
bool Push(SqStack *S ElemType e)
{
if (!S->base) return false
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3073 2009-10-29 16:55 Test.cpp
文件 4223 2009-08-17 10:05 DynaSeqStack.cpp
文件 884 2009-08-17 10:05 DynaSeqStack.h
文件 222 2009-08-27 12:32 ElemType.cpp
文件 230 2009-08-27 08:20 ElemType.h
----------- --------- ---------- ----- ----
8632 5
相关资源
- 数据结构 图的遍历源代码
- 数据结构实验源代码集
- 实验报告:数据结构长整数四则运算
- 数据结构教程李春葆第五版书中例题
- 吕鑫vc6c++数据结构视频源码
- 数据结构教程李春葆第五版课后答案
- 算法表达式求值.cpp
- 李春葆课后习题答案(数据结构教材
- 数据结构1800题 题+答案(全)
- 数据结构(C语言版)ppt课件,清华,
- c++常用游戏算法及数据结构设计
- 数据结构超全面复习导图
- C++设计模式pdf高清完整版
- 《Data Structures and Algorithm Analysis in C
- C++入门经典(第9版) ([美]Walter Sa
- VC++完整商业界面源码(再上传)
- 数据结构C语言版教学笔记严蔚敏
- 平面刚架有限元程序C语言完整版
- 算法_C语言的实现完整版
- 电子宠物C++完整代码可直接运行
- 数据结构C语言版期末考试试题(有答
- 最后一战OL手游 全套完整源码+资源,
- 多功能计算器实现C++代码以及代码详
- C语言数据结构银行客户排队
- C语言实现栈操作
- 简易学生管理系统源码 数据结构 大作
- 数据结构与C语言综合习题集
- 数据结构实验——赫夫曼树相关
- C语言进阶源码---基于graphics实现图书
- 数据结构——C++语言描述 陈慧南
评论
共有 条评论