您的位置:首页 > 理论基础 > 数据结构算法

数据结构之队列的基本操作入队出队初始化删除-c++代码实现及运行实例结果

2017-12-19 00:43 931 查看
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//定义队列大小为100
using 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
{

4000
*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;
}


运行结果

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐