用list容器类模板,顺序存储若干自然数,然后将其重新排序。

比如输入一个整数9后: 使得容器中存储: 1 2 3 4 5 6 7 8 9 然后将其重排成: 1 3 5 7 9 8 6

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;
}

运行结果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43793181/article/details/108933023