链队列
来源:互联网 发布:教我开淘宝店 编辑:程序博客网 时间:2024/05/21 17:13
#include<iostream>using namespace std;template <class DataType>struct Node{DataType data;Node<DataType> *next;};template <class DataType>class LinkedQueue{private:Node<DataType> *front,*rear;//对头和队尾指针public:LinkedQueue();~LinkedQueue();void enQueue(float x);DataType deQueue();DataType getQueue();bool isEmpty();};template <class DataType>LinkedQueue<DataType>::LinkedQueue(){Node<DataType> *s=NULL;s=new Node<DataType>;s->next=NULL;front=rear=s;}template <class DataType>LinkedQueue<DataType>::~LinkedQueue(){Node<DataType> *p=NULL;while(front!=NULL){p=front;front=p->next;delete p;}}template <class DataType>void LinkedQueue<DataType>::enQueue(float x) { Node<DataType> *s=new Node<DataType>;s->data=x;s->next=NULL;rear->next=s;rear=s;}template <class DataType>DataType LinkedQueue<DataType>::deQueue(){ Node<DataType> *p=NULL;int x;if(rear==front) throw"队空!\n";p=front->next;front->next=p->next;//将队头元素所在节点摘链x=p->data;//暂存队头元素if(p->next==NULL) rear=front;//判断出队前队列长度是否为1delete p;return x;}template <class DataType>DataType LinkedQueue<DataType>::getQueue(){if(front==rear) throw"队空!\n";return front->next->data;}template <class DataType>bool LinkedQueue<DataType>::isEmpty(){if(front==rear) return true;else return false;}int main() { LinkedQueue<int> s = LinkedQueue<int>(); cout << "isEmpty : " << s.isEmpty() << endl; s.enQueue(86);s.enQueue(99);s.enQueue(67);s.enQueue(95);s.enQueue(88); s.enQueue(78);s.enQueue(83); s.enQueue(69); cout << "判断此时表是否为空: " << s.isEmpty() << endl; cout << "获取栈顶元素: " <<s.getQueue() << endl; cout << "出栈: " << s.deQueue() << endl; cout << "出栈:" << s.deQueue() << endl; cout << "获取此时的栈顶: " <<s.getQueue() << endl; return 0;}
阅读全文
0 0
- 队列-循环队列/链队列
- 队列,链队列,循环队列
- 队列,链队列,循环队列
- 队列--链表队列
- 队列之链队列
- 08.队列.链队列
- 队列,链队列,链式存储的队列
- 队列---循环队列与链队列比较
- 顺序队列 - 循环队列 - 链队列
- 链队列
- 链队列
- 链队列
- 链队列
- 链队列
- 链队列
- 链队列
- 链队列
- 链队列
- Java SE(六)—— 多线程
- 数据结构实验之栈与队列三:后缀式求值
- 7-7 六度空间(30 分)
- STM32学习之:定时器 软件计时
- Apache CommonsのBeanUtilsのcopyPropertiesの使い方
- 链队列
- Android的代码安全那些事
- 本地安装jekll环境
- hdoj 2028 Lowest Common Multiple Plus
- Spring Framework Overview
- Oracle触发器实现更新一张表数据时判断另一张表是否存在,存在更新数据,不存在插入数据
- Leetcode2. Add Two Numbers
- Servlet实现Cookie的创建,读取,删除
- SQL Server大量数据秒级插入/新增/删除