文档介绍:实验二栈、队列、串的操作实验类型:验证性实验要求:必修实验学时:2学时一、实验目的:参照给定的栈类和队列类的程序样例,验证给出的栈和队列的常见算法,并结合线性表类实现有关串的操作。二、实验要求:1、掌握栈、队列、串的特点。掌握特殊线性表的常见算法。2、提交实验报告,报告内容包括:目的、要求、算法描述、程序结构、主要变量说明、程序清单、调试情况、设计技巧、心得体会。三、实验内容:。要求:(1)设计一个主函数实现对顺序堆栈类和链式堆栈类代码进行测试。测试方法为:依次把数据元素1,2,3,4,5入栈,然后出栈堆栈中的数据元素并在屏幕上显示。(2)定义数据元素的数据类型为如下形式的结构体:typedefstruct{chartaskname[10];//任务名inttaskno; //任务号}DataType;设计一个包含5个数据元素的测试数据,并设计一个主函数实现依次把5个数据元素入栈,然后出栈堆栈中的数据元素并在屏幕上显示。。要求::依次把数据元素1,2,3,4,5入队,然后出队中的数据元素并在屏幕上显示。,pare(S,T)。要求比较结果有大于、等于和小于三种情况。*。*,编写函数实现串的替换Replace(S,start,T,V),即要求在主串S中,从位置start开始查找是否存在子串T,若主串S中存在子串T,则用子串V替换子串T,且函数返回1;若主串S中不存在子串T,则函数返回0。并要求设计主函数进行测试。一个测试例子为:S=”Iamastudent”,T=”student”,V=”teacher“。四、程序样例顺序栈类的定义constintStackSize=10;//10只是示例性的数据,可以根据实际问题具体定义template<classT>//定义模板类SeqStackclassSeqStack{public:SeqStack(){top=-1;}//构造函数,栈的初始化~SeqStack(){}//析构函数voidPush(Tx);//将元素x入栈TPop();//将栈顶元素弹出TGetTop(){if(top!=-1)returndata[top];}//取栈顶元素(并不删除)boolEmpty(){top==-1?return1:return0;}//判断栈是否为空private:Tdata[StackSize];//存放栈元素的数组inttop;//栈顶指针,指示栈顶元素在数组中的下标};template<classT>voidSeqStack::Push(Tx){if(top==StackSize-1)throw"上溢";top++;data[top]=x;}template<classT>TSeqStack::Pop(){if(top==-1)throw"下溢";x=data[top--];returnx;}链式栈类的定义template<classT>classLinkStack{public:LinkStack(){top=NULL;}//构造函数,置空链栈~LinkStack();//析构函