栈与队列的应用

栈与队列的应用

本文介绍了基于顺序栈结构实现的三个算法实验。首先,定义了栈的基本操作,包括初始化、判空、入栈、出栈等,并通过测试验证其正确性。其次,设计算法判断单链表中长度为5的字符串是否中心对称:通过将前半部分字符入栈,后半部分与栈顶比较,若全部匹配则为对称。最后,利用两个栈(运算符栈和操作数栈)实现算术表达式求值,支持加减乘除及括号,运算结果限制在0~9之间。实验结果表明,程序能正确识别对称字符串并准确计算表达式值。

实验题目

1:依据顺序栈存储结构的定义如下:(利用以下的常用操作设计算法并实现完成 2、3 题)

cpp

#define  MAXSIZE  100

typedef char SElemType;

typedef struct

{

        SElemType   *base;

        SElemType   *top;

        int stacksize;

}SqStack;

//调试并测试常用操作如下:

int InitStack( SqStack &S )

int StackEmpty( SqStack S )

int StackLength( SqStack S )

int Push( SqStack &S, SElemType e)

int Pop( SqStack &S, SElemType &e)

2:设单链表中存放 n 个字符,试设计一个算法,判断该字符串是否中心对称。

3:利用栈来实现算术表达式求值的算法。程序运行时,输入合法的算术表达式(中间值及最终结果要在 0 ~ 9 之间,可以包括加减乘除和括号),便可输出相应的计算结果。

头文件

main.cpp

实验运行结果

Win10简洁之道
顺序表的增删改查

评论区

评论加载中...