原题链接:蓝桥杯算法提高VIP-队列操作
#include<bits/stdc++.h>
using namespace std;
class Node{
public:
Node(){
date = 0;
next = new Node;
next = NULL;
}
~Node(){
delete next;
}
int date;
Node* next;
};
class Queue{
public:
Queue(){
first = new Node;
last = new Node;
first = NULL;
last = NULL;
sizeOfQueue = 0;
}
~Queue(){
delete first;
delete last;
}
Node* first;
Node* last;
void push( int date_);
void pop();
void printQueue();
int sizeOfQueue;
};
void Queue::pop(){ //出队列
Node*p = new Node;
// if(!p)
// cout << "out of space" << endl;
if(this->sizeOfQueue==0){
cout << "no" << endl;
exit(0);
}
cout << this->first->date << endl;
this->sizeOfQueue--;
p = this->first;
this->first = p->next;
delete p;
}
void Queue::push(int date_){ //入队列
Node* p = new Node;
// if(!p)
// cout << "out of space" << endl;
this->sizeOfQueue++;
if(this->sizeOfQueue==1){
this->first = p;
this->last = p;
}else{
this->last->next = p;
last = p;
}
p->date = date_;
}
void Queue::printQueue(){ //遍历打印队列
int i;
Node*p = new Node;
p = this->first;
for( i = 0; i < sizeOfQueue; i++){
cout << p->date << endl;
p = p->next;
}
delete p;
}
int main(){
Queue myQueue;
int times; //调用次数
cin >> times;
int youWant, number;
while(times--){
cin >> youWant; //想执行的命令
if(youWant==1){
cin >> number; //入队列的数
myQueue.push(number);
}else if(youWant == 2){
myQueue.pop();
}else if(youWant==3){
cout << myQueue.sizeOfQueue << endl;
}
}
return 0;
}
0 分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复