课后习题 2-6 数组倒置

题目:

设有一个线性表 (e0, e1, …, en-2, en-1) 存放在一个一维数组A[arraySize]中的前n个数组元素位置。请编写一个函数将这个线性表原地逆置,即将数组的前n个原址内容置换为 (en-1, en-2, …, e1, e0)。

Array.h

#pragma once
#include<iostream>
using namespace std;

class Array {
public:
    int* data;
    int num;

    Array(int num) {
        data = new int[num];
        this->num = num;
    }
    void defaultCreat() {
        for (int i = 0; i < num; i++) {
            data[i] = i;
        }
    }

    void show() {
        for (int i = 0; i < num; i++) {
            cout << data[i] << " ";
        }
        cout << endl;
    }

    void turn() {
        int temp, mid;
        mid = num / 2;
        for (int i = 0; i <= mid; i++) {
            temp = data[mid - i];
            data[mid - i] = data[mid + i];
            data[mid + i] = temp;
        }
    }
};

main.cpp

#include"Array.h"

int main() {
    Array arr(9);
    arr.defaultCreat();
    arr.show();
    arr.turn();
    arr.show();
    return 0;
}

 

posted @ 2020-03-15 11:07  落地就是一把98K  阅读(342)  评论(0)    收藏  举报