欢迎来到天天文库
浏览记录
ID:52715777
大小:45.65 KB
页数:6页
时间:2020-03-29
《实验五--栈和队列验证实验报告.docx》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、班级:计算机11-1学号:姓名:成绩:_________实验一顺序表操作验证一、实验目的(1)掌握栈的顺序存储结构;(2)掌握栈的操作特性;(3)掌握基于顺序栈的基本操作的实现方法。(4)掌握队列的链接存储结构;(5)掌握队列的操作特性;(6)掌握基于链队列的基本操作的实现方法。二、实验内容(1)建立一个空栈;(2)对已建立的栈进行插入、删除、取栈顶元素等基本操作;(3)建立一个空队列;(4)对已建立的队列进行插入、删除、取队头元素等基本操作。三、设计与编码#includeusingnamespacestd;constintStack
2、Size=10;template//定义模板类SeqStackstructNode{Tdata;Node*next;};templateclassSeqStack{public:SeqStack();//构造函数,初始化一个空栈voidPush(Tx);//将元素x入栈TPop();//将栈顶元素弹出TGetTop();//取栈顶元素(并不删除)private:Tdata[StackSize];//存放栈元素的数组inttop;//栈顶指针,指示栈顶元素在数组中的下标};templateclassLi
3、nkQueue{public:LinkQueue();//构造函数,初始化一个空的链队列~LinkQueue();//析构函数,释放链队列中各结点的存储空间voidEnQueue(Tx);//将元素x入队TDeQueue();//将队头元素出队TGetQueue();//取链队列的队头元素private:Node*front,*rear;//队头和队尾指针,分别指向头结点和终端结点};//顺序栈初始化算法templateSeqStack::SeqStack(){top=-1;}//顺序栈入栈算法Pushtemplate4、ssT>voidSeqStack::Push(Tx){if(top==StackSize-1)cout<<"上溢"<TSeqStack::Pop(){intx;if(top==-1)cout<<"栈为空,无法删除"<TSeqStack::GetTop(){if(top==-1)cout<<"栈为空"<5、顶的元素为:"<LinkQueue::LinkQueue(){Node*s;s=newNode;s->next=NULL;//创建一个头结点sfront=rear=s;//将队头指针和队尾指针都指向头结点s}templateLinkQueue::~LinkQueue(){Node*q,*front;while(front!=NULL){q=front;front=front->next;6、deletefront;}}//链队列入队算法EnQueuetemplatevoidLinkQueue::EnQueue(Tx){Node*s;s=newNode;s->data=x;//申请一个数据域为x的结点ss->next=NULL;rear->next=s;//将结点s插入到队尾rear=s;}//链队列出队算法DeQueuetemplateTLinkQueue::DeQueue(){intx;Node*p;if(rear==front)cout<<"下溢"<7、ront->next;x=p->data;//暂存队头元素front->next=p->next;//将队头元素所在结点摘链if(p->next==NULL)rear=front;//判断出队前队列长度是否为1deletep;returnx;}templateTLinkQueue::GetQueue(){//intx;//Node*p;if(front==rear)cout<<"队列为空"<data<8、和队列操作验证"<
4、ssT>voidSeqStack::Push(Tx){if(top==StackSize-1)cout<<"上溢"<TSeqStack::Pop(){intx;if(top==-1)cout<<"栈为空,无法删除"<TSeqStack::GetTop(){if(top==-1)cout<<"栈为空"<5、顶的元素为:"<LinkQueue::LinkQueue(){Node*s;s=newNode;s->next=NULL;//创建一个头结点sfront=rear=s;//将队头指针和队尾指针都指向头结点s}templateLinkQueue::~LinkQueue(){Node*q,*front;while(front!=NULL){q=front;front=front->next;6、deletefront;}}//链队列入队算法EnQueuetemplatevoidLinkQueue::EnQueue(Tx){Node*s;s=newNode;s->data=x;//申请一个数据域为x的结点ss->next=NULL;rear->next=s;//将结点s插入到队尾rear=s;}//链队列出队算法DeQueuetemplateTLinkQueue::DeQueue(){intx;Node*p;if(rear==front)cout<<"下溢"<7、ront->next;x=p->data;//暂存队头元素front->next=p->next;//将队头元素所在结点摘链if(p->next==NULL)rear=front;//判断出队前队列长度是否为1deletep;returnx;}templateTLinkQueue::GetQueue(){//intx;//Node*p;if(front==rear)cout<<"队列为空"<data<8、和队列操作验证"<
5、顶的元素为:"<LinkQueue::LinkQueue(){Node*s;s=newNode;s->next=NULL;//创建一个头结点sfront=rear=s;//将队头指针和队尾指针都指向头结点s}templateLinkQueue::~LinkQueue(){Node*q,*front;while(front!=NULL){q=front;front=front->next;
6、deletefront;}}//链队列入队算法EnQueuetemplatevoidLinkQueue::EnQueue(Tx){Node*s;s=newNode;s->data=x;//申请一个数据域为x的结点ss->next=NULL;rear->next=s;//将结点s插入到队尾rear=s;}//链队列出队算法DeQueuetemplateTLinkQueue::DeQueue(){intx;Node*p;if(rear==front)cout<<"下溢"<7、ront->next;x=p->data;//暂存队头元素front->next=p->next;//将队头元素所在结点摘链if(p->next==NULL)rear=front;//判断出队前队列长度是否为1deletep;returnx;}templateTLinkQueue::GetQueue(){//intx;//Node*p;if(front==rear)cout<<"队列为空"<data<8、和队列操作验证"<
7、ront->next;x=p->data;//暂存队头元素front->next=p->next;//将队头元素所在结点摘链if(p->next==NULL)rear=front;//判断出队前队列长度是否为1deletep;returnx;}templateTLinkQueue::GetQueue(){//intx;//Node*p;if(front==rear)cout<<"队列为空"<data<8、和队列操作验证"<
8、和队列操作验证"<
此文档下载收益归作者所有