線形テーブルLがインクリメントされていることが知られている.線形テーブルLの秩序性を維持するために、XをLの適切な位置に挿入するアルゴリズムを書きます.


線形テーブルLがインクリメントされていることが知られている.線形テーブルLの秩序性を維持するために、XをLの適切な位置に挿入するアルゴリズムを書いてみます.
//
// Created by wp on 2020/3/5.
//     L    。     , X   L      ,      L    。
//

#include 
#include 

using namespace std;
#define MAX 1000

class List_wp {
     
public:
    List_wp() {
     //     
        index = 0;
        list_array[index] = 0;
    }

    void append(const int &a) {
     //       
        list_array[index] = a;
        index++;
    }

    void Appropriate_insertion(const int &x) {
     // X   L      
        for (int i = 0; i < index; i++) {
     
            if (x <= list_array[i]) {
     
                yidong(i, x);
                return;
            }
        }
    }

    void list_sort() {
     //       
        for (int i = 0; i < index - 2; i++) {
     
            for (int j = 0; j < index - 1 - i; j++) {
     
                if (list_array[j] > list_array[j + 1]) {
     
                    int temp = list_array[j];
                    list_array[j] = list_array[j + 1];
                    list_array[j + 1] = temp;
                }
            }
        }
    };

    int len() {
     //       
        return index;
    }

    void print_list() {
     //       
        if (index == -1) {
     
            cout << "list is empty" << endl;
            return;
        }
        for (int i = 0; i < index; i++) {
     
            if (index != 0) {
     
                cout << list_array[i];
            }
            if (i == index - 1) {
     
                cout << endl;
            } else {
     
                cout << " , ";
            }
        }
    }

private:
    int index;//index
    int list_array[MAX];//       

    void yidong(int m_index, int m_num) {
     
        index++;
        for (int i = index; i > m_index; i--) {
     
            list_array[i] = list_array[i - 1];
        }
        list_array[m_index] = m_num;
    }
};


int main() {
     
    List_wp L;
    L.append(1);// append        
    L.append(6);
    L.append(4);
    L.append(2);
    L.append(1);

    L.list_sort();//    L    
    L.print_list();//       
    cout << L.len() << endl;//       

    cout << "---------" << endl;

    L.Appropriate_insertion(3);// X   L      
    L.print_list();//       
    cout << L.len() << endl;//       

    return 0;
}