文档介绍:实验类型:验证性实验要求:必修实验学时: 2 学时一、实验目的: 参照给定的栈类和队列类的程序样例, 验证给出的栈和队列的常见算法, 并结合线性表类实现有关串的操作。二、实验要求: 1 、掌握栈、队列、串的特点。掌握特殊线性表的常见算法。 2、提交实验报告, 报告内容包括: 目的、要求、算法描述、程序结构、主要变量说明、程序清单、调试情况、设计技巧、心得体会。三、实验内容: 1. 堆栈类测试和应用问题。要求: (1) 设计一个主函数实现对顺序堆栈类和链式堆栈类代码进行测试。测试方法为: 依次把数据元素 1,2,3,4,5 入栈,然后出栈堆栈中的数据元素并在屏幕上显示。(2) 定义数据元素的数据类型为如下形式的结构体: 设计一个包含 5 个数据元素的测试数据,并设计一个主函数实现依次把 5 个数据元素入栈,然后出栈堆栈中的数据元素并在屏幕上显示。 2. 队列类测试和应用问题。要求: 设计一个主函数对循环队列类和链式队列类代码进行测试. 测试方法为:依次把 1,2,3,4,5 入队,然后出队中的数据元素并在屏幕上显示。 3 .设计串采用顺序存储结构,pare(S, T) 。要求比较结有大于、等于和小于三种情况。*4. 设计算法利用栈类实现把十进制整数转换为二至九进制之间的任一进制输出。*5. 设计串采用静态数组存储结构,编写函数实现串的替换 Replace(S, start, T, V), 即要求在主串 S中, 从位置 start 开始查找是否存在子串 T, 若主串 S 中存在子串 T, 则用子串 V 替换子串 T, 且函数返回 1; 若主串 S 中不存在子串 T, 则函数返回 0。并要求设计主函数进行测试。一个测试例子为: S=”I ama student ”, T=” student ”, V=” teacher “。四、实验源码 #include<iostream> using namespace std; const int StackSize=10; class SeqStack { public: SeqStack( ) {top=-1;} ~SeqStack( ){} void Push( int x) { if (top== StackSize-1) throw " 溢出"; top++; data[top]=x;} int Pop( ){ if (top==-1) throw " 溢出"; int x=data[top--]; return x;} int data[StackSize]; int top; }; int main() { SeqStack a; for(int i=1;i <= 5; i++) { (i);} for( i=0 ;i< 5; i++) { int k= 0; k= (); cout<< k << endl;} } #include<iostream> #include<string> using namespace std; const int StackSize=10; typedef struct { int notask; char name[10];}DataType; class SeqStack { public: SeqStack( ) {top =