博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
STL-queue和循环队列基本操作的实现
阅读量:4661 次
发布时间:2019-06-09

本文共 2133 字,大约阅读时间需要 7 分钟。

2018-11-13-17:53:44  

1.可增长循环队列

    队列是一种特殊的线性表,是一种先进先出(FIFO)的数据结构。它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。

    下面是我用顺序结构实现的可增长循环队列,当队列元素的个数达到QueueSize-1时,队列的最大储存长度会定量增长。

 

 

1 /*********************************************************  2     循环队列的基本操作的实现。  3         1.当队列元素的个数达到QueueSize-1时,队列的最大储存长度会定量增长。  4     mian函数操作:  5         1.输入一个字符串。  6         2.输入字符,如果字符为'+'或者'-'则进行入队或者出队操作。  7         3.每次入队出队后打印出现有的队列。  8 **********************************************************/  9 #include 
10 #include
11 #include
12 #include
13 using namespace std; 14 #define INITQUEUESIZE 100 15 #define QUEUEINCREAMENT 40 16 #define OverFlow -1 17 typedef char QElemtype; 18 typedef struct{ 19 QElemtype*Elem;//存放队列元素数组的首地址 20 int Front,Rear;//储存队头和队尾的位置 21 int QueueSize;//队列当前的最大储存长度 22 }Queue; 23 bool Init_Queue(Queue&Q); 24 bool Queue_Empty(Queue Q); 25 bool Queue_Full(Queue Q); 26 QElemtype Get_Front(Queue Q); 27 bool Pop(Queue&Q,QElemtype&Elem); 28 bool Push(Queue&Q,QElemtype Elem); 29 void PrintQueue(Queue Q); 30 //main函数内所有数据均为测试数据,读者可根据自己测试方式自行调换 31 32 int main() 33 { 34 Queue Q; 35 Init_Queue(Q); 36 QElemtype Elem; 37 string s; 38 cin>>s; 39 for(int i=0;i

 

2.STL之Queue队列

    C++中通常通过STL模板类定义队列,queue是一个容器适配器,具体而言,他是一个先进先出(FIFO)的数据结构。

      头文件:#include<queue>

      原型:templateclass T, class Container =std::deque<T> > class queue;

        如上,这对尖括号中有两个参数,第一个是T,表示队列中存放的数据的类型,比如int,double,或者结构体之类。

      第二个参数指明底层实现的容器类型,也就是指明这个栈的内部实现方式,比如vector,deque,list。如果不指明它,默认使用deque(双端队列)。

      队列的成员函数和基本操作:

        定义一个队列:   

1 queue
q;//定义一个数据类型为char变量名为q的队列

 

        back()返回最后一个元素:

1 q.back();//访问最后被压入队列的元素。

 

        empty()如果队列空则返回真:

1 q.empty();//当队列空时,返回true。

 

        front()返回第一个元素:

q.front();//访问队列的第一个元素。

 

        pop()删除第一个元素:

1 q.pop();// 弹出队列的第一个元素,注意,并不会返回被弹出元素的值。

 

        push()在末尾加入一个元素:

1 q.push(x); //将x 接到队列的末端。

 

        size()返回队列中元素的个数:

1 length=q.size();//将q队列的元素个数赋值给一个变量length。

 

转载于:https://www.cnblogs.com/bianjunting/p/9953846.html

你可能感兴趣的文章