Test ///*检验数字序列是否为正确出栈顺序 //第一行表示此组数据有多少个数字,只有0一行表示数据结束 //从 a.txt读入,是就输出yes,否就输出NO //*/ #include<fstream> #include<iostream> #include<sstream> #include<stack> using namespace std; int main() { ifstream in("a.txt"); if(in)cout<<"成功/n"; cout<<"jdfkljg"<<endl; for(int n,line=0;in>>n && in.ignore();) //第一个空格前的字符赋给n,当n为0时,循环结束。 {cout<<n<<endl; cout<<(line++ ? "/n" : ""); for(string s;getline(in,s) && s!="0";) //当s所获得的字符为0时,表示此组数据结束,循环结束 { istringstream sin(s); stack<int> st; for(int last=0,coach;sin>>coach;st.pop()) { for(int p=last+1;p<=coach;++p)st.push(p); if(last<coach) last=coach; if(st.top()!=coach)break; } cout<<(!sin ? "Yes/n" : "No/n"); } } return 0; }