队列的链接存储结构——基本操作的实现
来源:互联网 发布:剑网三男神脸数据 编辑:程序博客网 时间:2024/06/13 22:22
文章内容:入队、出队、读取队头元素等操作的代码以及实现结果截图
链接存储结构队列的类定义
#include<iostream>using namespace std;struct Node{int data;Node*next;};class Linkqueue{public:Linkqueue(); /*初始化一个队列*/~Linkqueue();void Enqueue(int x); /*将x入队*/int Getqueue();int Dequeue(); /*出队*/int Deonequeue();int Empty(){ /*判断队列是否为空*/if(front==rear) { return 1;}else{return 0;} }private:Node*front,*rear;};
成员函数定义
int Linkqueue::Getqueue(){int s;if(front!=rear) s=front->next->data;return s;}Linkqueue::Linkqueue(){Node*s;s=new Node;s->next=NULL;front=rear=s;}Linkqueue::~Linkqueue(){Node*t;while(front!=NULL){ t=front; front=front->next; delete t;}}void Linkqueue::Enqueue(int x){ Node*s; s=new Node; s->data=x; s->next=NULL; rear->next=s; rear=s;}int Linkqueue::Dequeue(){ if(front==rear) throw"下溢"; else{ Node*p;p=new Node;p=front->next;int x=p->data; front->next=p->next;if(p->next=NULL) front=rear;delete p;return x; } }int Linkqueue::Deonequeue(){ if(front==rear) throw"下溢"; else{ Node*p;p=new Node;p=front->next;int x=p->data; front->next=p->next;delete p;return x; } }
主函数
int main(){ int i;Linkqueue one;one.Enqueue(3);one.Enqueue(4);one.Enqueue(5);cout<<'\n'<<"请输入入队的数"<<endl;cin>>i;one.Enqueue(i);if(one.Empty()){cout<<"没有内容!"; }else{cout<<'\n';cout<<"有数字!"; cout<<'\n'<<"队头为:";cout<<one.Getqueue();cout<<'\n'<<endl; cout<<"弹出队头:";cout<<one.Dequeue();cout<<'\n'<<"此时队头:";cout<<one.Getqueue(); } cout<<'\n'<<endl; return 0;}
心得:
1.要注意这种循环队列的判空操作为:front==rear是否成立,若成立则为空,反之则反。
初始化
2.初始化一个空的链队列,要申请一个头结点,然后让队列头指针和列尾指针均指向头结点。
3.链队列的基本实现本质上也是单链表的操作简化,插入只考虑在链队列的尾部进行,删除只考虑在链队列头部进行,其时间复杂度均为O(1)。
阅读全文
0 0
- 队列的链接存储结构——基本操作的实现
- 队列的顺序存储结构——基本操作的实现
- 队列的链接存储结构——链队列 图解和代码实现
- 队列的链接存储结构——链队列 图解和代码实现
- 队列的链接存储结构——链队列 图解和代码实现
- 队列的链接存储结构
- 队列的链接存储结构
- 队列的链接存储结构---链队列
- JAVA实现队列 队列的链式存储结构及操作
- 链队列的链接存储结构及实现
- 【队列】链式结构实现队列的基本操作
- 队列的基本操作(采用链式存储结构)
- 队列的顺序存储结构及其基本运算的实现
- 队列的顺序存储结构及其基本运算的实现
- JAVA实现队列的顺序存储结构和操作
- 循环队列操作的实现-顺序存储结构
- 数据结构——队列的链式存储结构以及实现
- 单链表的存储结构及其基本操作的实现
- Mysql 学习之EXPLAIN作用
- OS-IPC
- 文献检索关键字用法
- java中int和Integer的区别
- 第一天总要写点什么
- 队列的链接存储结构——基本操作的实现
- python3.6 Dict内置方法
- Facebook is making a VR offer it hopes you can’t refuse
- C语言实验——时间间隔
- mybatis 对接oracle 11g 工程搭建简介
- 关于selenium 用Webdrive打开Firefox不含有插件的问题(python)
- Scannner类下的nextInt()和nextLine同时使用出现的问题
- 4Sum算法
- 1061. 判断题(15)