标签:数字 出队 cin 退出 class 计算 int 问题 head
简单的队列操作
我将结果保存在一个string数组中
注意点:2.出队命令可能会出现空队出队(下溢),请输出“no”,并退出
即for循环break
1 #include<iostream> 2 #include<cstring> 3 #include<sstream> 4 using namespace std; 5 string to_string(int x){//int转string 6 ostringstream o; 7 if(o<<x) 8 return o.str(); 9 return "error"; 10 } 11 int main() 12 { 13 string s[1000];//保存输出的结果 14 int sno;//s数组的下标 15 int num,head,tail;//num为输入的行数 16 int j;//队列的下标 17 int q[1000];//队列 18 cin>>num; 19 tail=head=j=sno=0;//各个初始化 20 for(int i=0;i<num;i++) 21 { 22 int x,y; 23 cin>>x; 24 if(x==1){ 25 cin>>y; 26 q[j++]=y;//入队 27 tail++; 28 } 29 else if(x==2) 30 { 31 if(head>=tail) 32 { 33 s[sno++]="no"; 34 break; 35 }//队列没元素 36 else 37 { 38 s[sno++]=to_string(q[head]);//将队首元素保存在s数组 39 head++;//出队操作 head后移 40 } 41 } 42 else if(x==3) 43 { 44 s[sno++]=to_string(tail-head);//将队列元素个数保存到s数组 45 } 46 } 47 48 for(int i=0;i<sno;i++) 49 { 50 cout<<s[i]<<endl; 51 } 52 return 0; 53 }
标签:数字 出队 cin 退出 class 计算 int 问题 head
原文地址:http://www.cnblogs.com/tvtaqa/p/7835365.html