C++リニアテーブルの実装

1682 ワード

線形テーブルは、n個の同じ要素からなる規則的で限られた集合であり、ここではVectorクラスで表現し、挿入、削除、印刷の操作を追加し、境界問題に重点を置いて線形テーブルをよりよく理解することができる.
コードブロックの使用方法は、4つのスペースまたは2つのtabです.```ではブロックが繋がらない.
#include 
using namespace std;
class Vector {
//    size         ,length     ,data      
private:    int size, length;
    int *data;
public:
//            Vector(int input_size) {
        size = input_size;
        length = 0;
        data = new int[size];
    }
//       '~'        delete           ,delete[]               
    ~Vector() {
        delete[] data;
    }
//        
    bool insert(int loc, int value) {
//          loc       
        if (loc < 0 || loc > length) {
            return false;
        }
//                         ,        ,           ,       
        if (length >= size) {
            return false;
        }
        for (int i = length; i > loc; i--) {
            data[i] = data[i - 1];
        }
        data[loc] = value;
        length++;
        return true;
    }
    bool remove(int loc) {
        if (loc < 0 || loc >= length) {
            return false;
        }
        for (int i = loc; i < length - 1; i++) {
            data[i] = data[i + 1];
        }
        length--;
        return true;
    }
    void print() {
        cout << "   :\t";
        for (int i = 0; i < length; i++) {
            cout << data[i] << " ";
        } 
       cout << endl;
    }
};
int main() {
    Vector v(10);
    v.insert(0, 1);
    v.insert(1, 2);
    v.insert(1, 3);
    v.print();
    v.remove(1);
    v.print();
}

結果:
   :    1 3 2 
   :    1 2