链队实现
来源:互联网 发布:淘宝衣服检测 编辑:程序博客网 时间:2024/05/16 09:36
一、实验目的
1、熟练队的结构特点,掌握队的顺序存储和链式存储结构和实现。
2、学会使用队解决实际问题。
二、实验内容
1、自己确定结点的具体数据类型和问题规模:
分别建立一个顺序队列和链队列,实现队列的入队和出队操作。
三、源代码
#include<iostream>using namespace std;template<typename T>struct Node{T data;Node<T> *next;};template<typename T>class LinkQueue{private:Node<T> *front,*rear;//队头、队尾指针int length;public:LinkQueue();//构造函数~LinkQueue();//析构函数int Length();//队的长度void Enqueue(T x);//入队T Dequeue();//出队T Getqueue();//取队头元素void Empty();//判断队是否为空};template<class T>LinkQueue<T>::LinkQueue(){Node<T> *s=NULL;s=new Node<T>;s->next=NULL;front=rear=s;length=0;}template<class T>LinkQueue<T>::~LinkQueue(){Node<T> *p;p=NULL;while(front!=NULL){p=front->next;delete front;front=p;}}template<class T>int LinkQueue<T>::Length(){return length;}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;length++;}template<class T>T LinkQueue<T>::Dequeue(){if(rear==front) throw"下溢";Node<T> *p;p=front->next;T x=p->data;front->next=p->next;delete p;if(p->next==NULL) rear=front;length--;return x;}template<class T>T LinkQueue<T>::Getqueue(){if(front!=rear) return front->next->data;}template<class T>void LinkQueue<T>::Empty(){if(front==rear)cout<<"1";elsecout<<"0";}void main(){LinkQueue<int> b;cout<<"判断队是否为空,若空则1,否为0:";b.Empty();cout<<endl;b.Enqueue(1);b.Enqueue(2);b.Enqueue(3);b.Enqueue(4);b.Enqueue(5);cout<<"元素1,2,3,4,5入队后队的长度为:"<<b.Length()<<endl;cout<<"取队头元素:"<<b.Getqueue()<<endl;cout<<endl;cout<<"出队"<<endl;b.Dequeue();cout<<"取队头元素:"<<b.Getqueue()<<endl;cout<<"栈的长度为:"<<b.Length()<<endl;}
四、运行结果
五、心得
链队只是在单链表的基础上进行了简单的修改,要记得出队找front,入队找rear。
阅读全文
0 0
- 链队的实现
- 链队操作实现
- 链队实现
- 链队的操作实现
- C++类模板实现链队
- 2个链栈实现链队功能
- C语言实现队(基于链表)
- 链队的实现与操作
- 循环队列,队链的实现
- Java栈实现:数组实现和链表实现
- C++实现队列--数组实现和链表实现
- C++实现队列--数组实现和链表实现
- 链队列的实现,C++代码实现
- 队列的实现--链表实现
- Josephus排列-红黑树实现-链表实现
- 实现循环链表(js实现)
- 链表实现队列 C++实现
- 栈实现队列,链表实现栈
- tomcat启动报错:Multiple Contexts have a path of XXX.
- 【LeetCode】二叉树的所有路径
- 6.prototype属性
- 2017年10月小感
- 第四章:列表
- 链队实现
- XListViewHeader
- JavaScript淡入淡出
- (转)Matlab 正则表达式零基础起步教程
- linux下进程间通信方式之(1)-管道及fork()函数
- 将less文件转换成css文件
- 51单片机矩阵键盘C程序
- Intellij IDEA新建SpringMVC配置
- Oi