main.c部分
#include <iostream> #include <list> // 链表 using namespace std; void show(list<int> numbers) { // for(int k : numbers) // cout << k << '\t'; // cout << endl; for(list<int>::iterator it=numbers.begin(); it!=numbers.end(); it++) cout << *it << '\t'; cout << endl; } int main() { list<int> numbers; int n; cin >> n; for(int i=1; i<=n; i++) numbers.push_back(i); show(numbers); for(list<int>::reverse_iterator rit = numbers.rbegin(); //奇偶数重排 rit != numbers.rend(); rit++) { if(*rit%2 == 0) //对偶数进行操作,奇数不动 { int tmp = *rit; numbers.remove(tmp); numbers.push_back(tmp); } } show(numbers); return 0; }运行结果:
