数据结构——13 队列链表描述
来源:互联网 发布:淘宝的捉猫猫怎么玩 编辑:程序博客网 时间:2024/06/05 14:28
队列——链表描述
为了方便出队操作,建立队列的时候,队列的方向和队列里元素的方向连接相反
#include <iostream>using namespace std;struct node //定义一个结构体,它是队列里的元素{ int x; node* next;};class queue{public:queue():size(0) //构造函数初始化队列里元素的个数为0,并new一个节点{front=rear=new node; } ~queue(); //析构函数删除队列int dequeue(); //出队void enqueue(int n); //进对private: node *front; //队列头指针node *rear; //队列尾指针 int size; //队列里元素的个数};queue::~queue() { node *p=front; while(p!=NULL) { front=front->next; //从front删除元素 delete [] p; p=front; }}void queue::enqueue(int n) //入队操作,增加一个元素放在队尾{ node* temp=new node; //定义一个临时指针if(size==0) //如果size=0,表示队列没有元素,但构造函数new了一个node节点,所以直接把它当作第一个节点,此时,front和rear都指向它{rear->x=n;rear->next=NULL;//rear=temp; //这里不知道为什么这样不行,直接把temp赋值给rear,可能rear->next出问题}else //size不为0,往尾巴上续{temp->x=n;rear->next=temp; temp->next=NULL;rear=temp; }size++; //栈里元素个数加1}int queue::dequeue() //出对操作,返回出队元素值,并删除该元素{ node* temp; //定义一个临时node指针 int out; //返回值if(size) //用size判断是否栈里还有元素{temp=front; front=temp->next;out=temp->x;delete []temp; size--; return out;}else{cout<<"队列已经为空!"<<endl;exit(0);}}int main(){ queue que; cout<<"The enqueue of que are: "; for(int i=1;i<=20;i++) { cout<<i<<" "; que.enqueue(i); } cout<<endl; cout<<"The dequeue of que are: "; for(i=1;i<=10;i++) cout<<que.dequeue()<<" ";cout<<endl; return 0;}
0 0
- 数据结构——13 队列链表描述
- [C++]数据结构:链表描述的队列LinkedQueue类
- JavaScript描述数据结构与算法——队列
- 表、栈和队列——《数据结构与算法分析C++描述》
- 数据结构——链队列
- 数据结构——链队列
- 数据结构C语言描述———用顺序队列判断回文数
- 《数据结构与算法分析c++描述》读书笔记五——优先队列(堆)
- 数据结构——c语言描述 第三章(3) 队列
- <数据结构与算法分析 C++描述> 表/栈/队列
- 数据结构链表队列
- 数据结构-链表队列
- 数据结构----链表队列
- 数据结构:链表队列
- 数据结构——队列
- 数据结构——队列
- 数据结构——队列
- 数据结构——队列
- IOS在子线程中使用定时器,将定时器添加至RunLoop中
- c++ find 在容器中查找元素
- 彻底学会使用epoll(五)—— ET模式下的注意事项
- Notificationt通知栏使用详解
- Message Flood 【排序--二分查找】
- 数据结构——13 队列链表描述
- java web过滤器实际应用(解决中文乱码 html标签转义功能 敏感字符过滤功能)
- c/c++ 内存泄露分析工具
- android listview 实现时光轴效果
- Svn项目迁移到Git及Visual Studio 中git使用
- 2016上半年总结
- 彻底学会使用epoll(六)——关于ET的若干问题总结
- Java案例:双色球的实现
- MFC ASSERT 详解