实验五--栈和队列验证实验报告.docx_第1页
实验五--栈和队列验证实验报告.docx_第2页
实验五--栈和队列验证实验报告.docx_第3页
实验五--栈和队列验证实验报告.docx_第4页
实验五--栈和队列验证实验报告.docx_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

班级:计算机11-1 学号: 姓名: 成绩:_实验一 顺序表操作验证一、 实验目的(1)掌握栈的顺序存储结构;(2)掌握栈的操作特性;(3)掌握基于顺序栈的基本操作的实现方法。(4)掌握队列的链接存储结构;(5)掌握队列的操作特性; (6)掌握基于链队列的基本操作的实现方法。二、 实验内容(1)建立一个空栈;(2)对已建立的栈进行插入、删除、取栈顶元素等基本操作;(3)建立一个空队列;(4)对已建立的队列进行插入、删除、取队头元素等基本操作。三、 设计与编码 #includeusing namespace std;const int StackSize=10; template /定义模板类SeqStackstruct Node T data; Node *next; ;template class SeqStackpublic: SeqStack(); /构造函数,初始化一个空栈 void Push(T x); /将元素x入栈 T Pop( ); /将栈顶元素弹出 T GetTop(); /取栈顶元素(并不删除)private: T dataStackSize; /存放栈元素的数组 int top; /栈顶指针,指示栈顶元素在数组中的下标;template class LinkQueuepublic: LinkQueue( ); /构造函数,初始化一个空的链队列 LinkQueue( ); /析构函数,释放链队列中各结点的存储空间 void EnQueue(T x); /将元素x入队 T DeQueue(); /将队头元素出队 T GetQueue(); /取链队列的队头元素private: Node *front, *rear; /队头和队尾指针,分别指向头结点和终端结点;/顺序栈初始化算法template SeqStack:SeqStack() top=-1;/顺序栈入栈算法Pushtemplate void SeqStack:Push(T x) if (top=StackSize-1) cout上溢endl; else data+top=x;/顺序栈出栈算法Poptemplate T SeqStack:Pop()int x; if (top=-1) cout栈为空,无法删除endl; else x=datatop-; return x;template T SeqStack:GetTop() if(top=-1)cout栈为空endl; elsecout栈顶的元素为:datatopendl;return 0;/链队列构造函数算法LinkQueuetemplate LinkQueue:LinkQueue( )Node*s; s=new Node; s-next=NULL; /创建一个头结点s front=rear=s; /将队头指针和队尾指针都指向头结点stemplate LinkQueue:LinkQueue()Node *q,*front;while(front!=NULL)q=front;front=front-next;delete front;/链队列入队算法EnQueuetemplate void LinkQueue:EnQueue(T x)Node*s; s=new Node; s-data=x; /申请一个数据域为x的结点s s-next=NULL; rear-next=s; /将结点s插入到队尾 rear=s;/链队列出队算法DeQueuetemplate T LinkQueue:DeQueue( )int x;Node*p; if (rear=front)cout下溢next; x=p-data; /暂存队头元素 front-next=p-next; /将队头元素所在结点摘链 if (p-next=NULL) rear=front; /判断出队前队列长度是否为1 delete p; return x;template T LinkQueue:GetQueue()/int x;/Node*p;if(front=rear)cout队列为空endl;else cout队头元素dataendl; return 0;void meun()cout栈和队列操作验证endl; cout*endl;cout1.取栈顶元素endl;cout2.入栈endl;cout3.出队endl;cout4.取栈顶元素endl;cout5.入队endl;cout6.出队endl;cout7.退出endl;cout*endl;int main()meun();SeqStacks1;LinkQueues2;int flag=1;while(flag)int i;couti;switch(i)case 1:s1.GetTop();break;case 2:int i;couti;s1.Push(i);s1.GetTop();break;case 3:s1.Pop();s1.GetTop();break;case 4:s2.GetQueue();break;case 5:int i;couti;s2.EnQueue(i);s2.GetQueue();break;case 6:s2.DeQueue();s2.GetQueue();break;case 7:exit(0);coutendl;break;default:cout错误!endl;break;return 0;运行与调试a) 在调试程序的过程中遇到什么问题,是如何解决的?b) 设计了哪些设计数据?测试结果是什么?测试结果:能够实现入栈、出栈、取栈顶元素、入队、出队、取队头元素的功能c) 程序运行的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论