资源简介
问题描述
表达式中可能出现花括号{}、方括号[]、园括号(),从键盘输入一个表达式,检查左右括号配对情况,并输出结果。
例子:{[(…)(…)]…(…)}配对
而{[(…)(…)]…[(]…)}不配对
二、实验目的
掌握栈的存储与操作。
三、实验内容及要求
1、构造栈的数据结构。
2、实现栈的创建、查找、遍历、输出、入栈、出栈等操作。
代码片段和文件信息
#include
#include
#include
#define stack_init_size 10
#define stack_grow_size 5
#define elemtype char
#define ok 1
#define error 0
typedef struct { /*建立一个栈的首结点*/
elemtype * base;
elemtype * top;
int stacksize;
} spstack;
int InitStack(spstack *s) { /*建立空的栈并返回首地址*/
s->base=((elemtype*)malloc(stack_init_size*sizeof(elemtype)));
if (!s->base) return error;
s->top=s->base;
s->stacksize=stack_init_size;
return ok;
}
int StackEmpty(spstack *s) { /*判断栈是否为空*/
if (s->top==s->base) return ok;
else return error;
}
int Push(spstack *selemtype e) { /*往栈顶插入元素即进栈*/
if (s->top-s->base>=s->stacksize) { /*判断是否栈满*/
s->base=((elemtype*)realloc(s->base(s->stacksize+stack_grow_size)*sizeof(elemtype)));
if (!s->base) return error;
s->stacksize+=stack_grow_size;
s->top=s->base+s->stacksize;
}
*s->top++=e;
return ok;
}
int Pop(spstack *selemtype *e) { /*让栈顶元素依次输出即出栈*/
if (StackEmpty(s)) return error;
*e=*(--s->top);
return ok;
}
int Comp
- 上一篇:VC++ 视频播放器 程序及源码
- 下一篇:C语言graphics图形库
相关资源
- C语言面试笔试题,经典题目
- C语言编程常见问题解答.pdf
- 操作系统c语言模拟文件管理系统844
- C语言开发实战宝典
- C++中头文件与源文件的作用详解
- C语言代码高亮html输出工具
- 猜数字游戏 c语言代码
- C语言课程设计
- 数字电位器C语言程序
- CCS FFT c语言算法
- 使用C语言编写的病房管理系统
- 通信过程中的RS编译码程序(c语言)
- 利用C++哈希表的方法实现电话号码查
- 计算机二级C语言上机填空,改错,编
- 用回溯法解决八皇后问题C语言实现
- 简易教务管理系统c语言开发文档
- 操作系统课设 读写者问题 c语言实现
- 小波变换算法 c语言版
- C流程图生成器,用C语言代码 生成C语
- 3des加密算法C语言实现
- 简单的C语言点对点聊天程序
- 单片机c语言源程序(51定时器 八个按
- 个人日常财务管理系统(C语言)
- c语言电子商务系统
- 小甲鱼C语言课件 源代码
- 将图片转换为C语言数组的程序
- C语言实现的一个内存泄漏检测程序
- DES加密算法C语言实现
- LINUX下命令行界面的C语言细胞游戏
- 用单片机控制蜂鸣器播放旋律程序(
评论
共有 条评论