实验三:栈和队列的基本操作实现及其应用 | 您所在的位置:网站首页 › 栈的操作及应用实验总结 › 实验三:栈和队列的基本操作实现及其应用 |
一、实验目的
1、 熟练掌栈和队列的结构特点,掌握栈和队列的顺序存储和链式存储结构和实现。 2、 学会使用栈和队列解决实际问题。 二、实验内容1、自己确定结点的具体数据类型和问题规模: 分别建立一个顺序栈和链栈,实现栈的压栈和出栈操作。 分别建立一个顺序队列和链队列,实现队列的入队和出队操作。 2、设计算法并写出代码,实现一个十将二进制转换成2进制数。 3、选做题(*) 设计一个模拟饭堂排队打饭管理软件,实现“先来先打饭”的排号叫号管理。 三、实验步骤1、依据实验内容分别说明实验程序中用到的数据类型的定义; 2、相关操作的算法表达; 3、完整程序; 4、总结、运行结果和分析。 5、总体收获和不足,疑问等。 四、实验要求1、 按照数据结构实验任务书,提前做好实验预习与准备工作。 2、 加“*”为选做题。做好可加分。 3、 严格按照数据结构实验报告模板和规范,及时完成实验报告。 4、 在个人主页上发文章提交作业。 5、 实验课会抽查3-5人,希望你可以被查到! 源代码如下: #include using namespace std; const int StackSize=10; template class SeqStack { public: SeqStack(){top=-1;} ~SeqStack(){} void Push (DataType x); DataType Pop(); DataType GetTop(){ if(top!=-1) return data[top]; } int Empty(){ if(top==-1) return 1; else return 0; } private: DataType data[StackSize]; int top; }; template void SeqStack::Push(DataType x) { if(top==StackSize-1)throw"上溢"; data[++top]=x; } template DataType SeqStack::Pop() { int x; if(top==-1)throw"下溢"; x=data[top--]; return x; } int main() { int m,i; SeqStacks; do { cout |
CopyRight 2018-2019 实验室设备网 版权所有 |