数据结构|链队列的实现(实验3.4)
来源:互联网 发布:linux c一站式编程pdf 编辑:程序博客网 时间:2024/05/19 00:52
一、实验目的
1、 熟练掌队列的结构特点,掌握队列的顺序存储和实现。
2、 学会使用队列解决实际问题。
二、实验内容
1、自己确定结点的具体数据类型和问题规模,建立一个链队列,实现队列的入队和出队操作。
源代码如下:
#include<iostream> using namespace std; template < class T > struct Node{ T data; Node<T> *next; }; template <class T> class LinkQueue { public: LinkQueue(); ~LinkQueue() { Node<T> *deleteNode = NULL; while(!Empty()){ deleteNode = front->next; front->next = deleteNode->next; if(deleteNode->next == NULL){ rear = front; } delete deleteNode; } delete front; } void EnQueue(T x); T DeQueue(); T GetQueue(); void print(); int Empty(){return front == rear ? 1 : 0;} private: Node<T> *front,*rear; }; template <class T> LinkQueue<T>::LinkQueue() { Node<T> *s; s=new Node<T>; s->next=NULL; front=rear=s; } template <class T> void LinkQueue<T>::EnQueue(T x) { Node<T> *s; s=new Node<T>; s->data=x; s->next=NULL; rear->next=s; rear=s; } template <class T> T LinkQueue<T>::DeQueue() { Node<T> *p; if(rear==front) throw"下溢"; p=front->next; int x=p->data; front->next=p->next; if(p->next==NULL) rear=front; delete p; return x; } template <class T> T LinkQueue<T>::GetQueue() { return front->next->data; } template <class T> void LinkQueue<T>::print() { Node<T> *p = front->next; while(p->next != NULL){ cout<<p->data<<" "; p = p->next; } cout<<p->data<<endl; } void main() { LinkQueue<int>s; cout<<"把元素 1,2,3,4 依次进入链队列"<<endl; for(int i=1;i<=4;i++)s.EnQueue(i); cout<<"进入链队列结果为:"<<endl; s.print(); cout<<"出队一个元素: "<<s.DeQueue()<<endl;cout<<"出队结果为:"<<endl; s.print(); cout<<"队头元素为:"<<s.GetQueue()<<endl; }运行结果如下:
阅读全文
0 0
- 数据结构|链队列的实现(实验3.4)
- 数据结构|链队列的实现(实验3.4)
- 数据结构|顺序队列的实现(实验3.3)
- 数据结构|顺序队列的实现(实验3.3)
- 数据结构:实验六(单循环链表实现链式队列)
- 数据结构实验(三):链队列
- 实验三:链队列的实现
- 实验三之链队列的实现
- 数据结构 队列的实现
- 数据结构:队列的实现
- 【数据结构】 队列的实现
- 数据结构:队列的实现
- 数据结构 队列的实现
- 顺序队列和链队列的实现(实验3.2)
- 《数据结构》实验三:栈和队列实验 (实验报告)
- C语言数据结构队列实现舞伴匹配(数据结构第二次实验)
- 数据结构|链栈的实现(实验3.2)
- 数据结构|链栈的实现(实验3.2)
- ASP.NET MVC利用input通过ajax上传文件
- Linux安装JDK,tomcat等配置
- 关于Java类加载双亲委派机制的思考(附一道面试题)
- 2018秋招 今日头条1017 房间
- 我的Linux系统入坑之路
- 数据结构|链队列的实现(实验3.4)
- git看不到别人创建的远程分支
- spring事务管理几种方式
- 第3课:在IDE下开发一个Scala程序,透彻解析及Scala控制结构
- 【Mono】C# + Mono + Linux 编程初体验之 HelloWorld
- java设计模式之代理模式
- [BZOJ2186][SDOI2008]沙拉公主的困惑 欧拉函数
- 基于日志的同步数据一致性和实时抽取
- Django自定义标签实现多级评论