数据结构之队列的基本操作入队出队初始化删除-c++代码实现
来源:互联网 发布:荣格全集 淘宝 编辑:程序博客网 时间:2024/04/19 00:24
C++的头文件已经包含了队列如下所示,但我们也要了解一下他们的实现原理,而且stl提供的容器都是“通用版本”,在解决某些具体问题时,stl不一定是最合适最高效的,有时候还是要自己实现特化版本……,所以自己编写一次代码
直接调用头文件方法
代码如下:#include <iostream>#include<queue>//头文件using namespace std;int main(){ queue<int> q; for(int i=0;i<10;++i) q.push(i+1);//入队1到10 int queue_head=q.front();//获取队首元素 int queue_number=q.size();//获取队列元素个数 cout<<"队首元素为:"<<queue_head<<endl; cout<<"队列元素总个数为:"<<queue_number<<endl; cout<<"队列元素依次出队"<<endl; while(!q.empty()) { cout<<q.front()<<" ";//cout<<q.pop()<<" "出错 q.pop(); } return 0;}
运行结果
下面是直接直接
编写的队列的相关操作
伪代码(请忽略红色线)
c++代码
#include <iostream>#define queueSize 100//定义队列大小为100using namespace std;class seqQueue//顺序队列{private: char queue[queueSize]; int head; int tail;public: void initQueue(seqQueue &sQ); void clearQueue(seqQueue &sQ); int queueEmpty(seqQueue &sQ); int enQueue(seqQueue &sQ,char x); int deQueue(seqQueue &sQ,char *x); friend int main();//将主函数声明为类的友元,这样主函数才能访问类的私有成员};/*初始化队列*/void seqQueue::initQueue(seqQueue &sQ){ sQ.head=sQ.tail=0;}/*删除队列*/void seqQueue::clearQueue(seqQueue &sQ){ sQ.head=sQ.tail=0;}/*如果队列为空*/int seqQueue::queueEmpty(seqQueue &sQ){ if(sQ.tail==sQ.head) return 1; else return 0;}/*入队*/int seqQueue::enQueue(seqQueue &sQ,char x){ if(sQ.tail==queueSize)//从队尾进入 return 0; else { sQ.queue[sQ.tail++]=x; return 1; }}/*出队*/int seqQueue::deQueue(seqQueue &sQ,char *x){ if(sQ.tail==sQ.head) return 0; else { *x=sQ.queue[sQ.head++]; return 1; }}int main(){ seqQueue sq; char x; char str[]="abcd";//定义一个数组 sq.initQueue(sq);//初始化 for(int i=0;i<sizeof(str)/sizeof(str[0]);++i) sq.enQueue(sq,str[i]);//将"abcd"入队 cout<<"输入到队列中的元素依次为:"; for(int i=0;i<sizeof(str)/sizeof(str[0]);++i) cout<<str[i]<<" ";//首先输出我们输入到队列中的元素 sq.deQueue(sq,&x);//出队队首元素 cout<<endl<<"出队的元素为:"<<x; cout<<endl<<"剩余元素依次出队:"; if(!sq.queueEmpty(sq)) { for(int i=sq.head;i<sq.tail;++i) cout<<sq.queue[i]<<" "; } return 0;}
运行结果
阅读全文
0 0
- 数据结构之队列的基本操作入队出队初始化删除-c++代码实现
- 循环队列的初始化、入队、出队等基本操作
- C语言实现循环队列基本操作(初始化、判断队空、入队、出队)
- 链队列的初始化、入队、出队等操作实现
- C语言实现顺序队列的初始化、入队、出队等操作(三)
- 顺序队列基本操作的实现----入队、出队、打印
- 队列的入队、出队基本操作
- C++实现普通队列,循环队列的基本操作(初始化,入队,出队,获取队列首元素等)
- 队列的入队、出队操作实现
- c之队列相关操作------初始化,入队,出队,队列清空,销毁,遍历
- 链队列的初始化、入队、出队及打印(数据结构)
- 链式队列操作,初始化,入队,出队
- 【数据结构】队列的出队和入队操作
- 采用链式存储实现队列的初始化、入队、出队操作。
- 采用顺序存储实现循环队列的初始化、入队、出队操作。
- 队列基本操作 出队与入队
- 编程实现队列入队出队操作
- 编程实现队列的入队/出队操作
- STL_Lesson005_002
- 服务读写不分离架构
- 哈希函数(散列函数)详解
- 6---------prim算法的简单应用
- Android 实现webview的封装示例
- 数据结构之队列的基本操作入队出队初始化删除-c++代码实现
- CSS菜鸟笔记
- Spring-validator 校验器
- 谈谈单例模式(二)
- HDFS的工作机制
- CSDN博客等级说明及积分规则
- 求大佬帮忙看看这道题,总是出错
- 2017年前端面试题整理汇总100题
- 实现一个可下拉选择的TabLayout