1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
| #include<iostream> using namespace std; class arrlist { private: int* alist; int maxsize; int curlen; int position; public: arrlist(const int size) { maxsize = size; alist = new int[maxsize]; curlen = position = 0; } ~arrlist() { delete[]alist; } void clear() { delete[]alist; curlen = position = 0; alist = new int[maxsize]; } int length() { return curlen; } int getpos(const int value) { for (int i = 0; i < maxsize; i++) { if (value == alist[i]) { return i; } } return -1; } bool insert(const int p, const int value) { if (curlen >= maxsize) { cout << "The List is overflow" << endl; return false; } if (p<0 || p>curlen) { cout << "Insertion point is illegal" << endl; return false; } for (int i = curlen; i > p; i--) { alist[i] = alist[i - 1]; } alist[p] = value; curlen++; return true; } bool del(const int p) { if (curlen == 0) { cout << "No elements to delete" << endl; return false; } if (p<0 || p>curlen - 1) { cout << "deletion is illegal" << endl; return false; } for (int i = p; i <= curlen - 1; i++) { alist[i] = alist[i + 1]; } curlen--; return true; } void print() { for (int i = 0; i < curlen; i++) { cout << alist[i]; } cout << endl; } }; int main() { arrlist a(10); a.insert(0, 1); a.print(); a.insert(1, 3); a.insert(1, 2); a.print(); a.insert(3, 4); cout<<a.length()<<endl; a.del(3); a.print(); cout<<a.length()<<endl; cout << a.getpos(1); return 0; }
|