|
|
|
|
#include <bits/stdc++.h>
|
|
|
|
|
|
|
|
|
|
using namespace std;
|
|
|
|
|
|
|
|
|
|
//˳<><CBB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>뷶Χ
|
|
|
|
|
const int N = 100;
|
|
|
|
|
|
|
|
|
|
// C++ <20><EFBFBD>캯<EFBFBD><ECBAAF> & <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
// https://www.runoob.com/cplusplus/cpp-constructor-destructor.html
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ģ<EFBFBD>壬<EFBFBD><E5A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΪT
|
|
|
|
|
template<class T>
|
|
|
|
|
class setlist { //<2F><>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD>Ϊsetlist
|
|
|
|
|
//˽<><CBBD>
|
|
|
|
|
private:
|
|
|
|
|
T data[N]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD><DDB5><EFBFBD><EFBFBD><EFBFBD>date;
|
|
|
|
|
int length; //<2F><><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD><EFBFBD>;
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
public:
|
|
|
|
|
//<2F>չ<EFBFBD><D5B9>캯<EFBFBD><ECBAAF>
|
|
|
|
|
setlist() {
|
|
|
|
|
length = 0; // <20><>ֵ
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>캯<EFBFBD><ECBAAF>
|
|
|
|
|
setlist(T a[], int n) {
|
|
|
|
|
if (n > N) throw "װ<EFBFBD><EFBFBD><EFBFBD>£<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD>";
|
|
|
|
|
for (int i = 0; i < n; i++) {
|
|
|
|
|
data[i] = a[i];//<2F><><EFBFBD>浽<EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
length = n;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD>ʱִ<CAB1>С<EFBFBD>
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB>ͬ<EFBFBD>ģ<EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD>˸<EFBFBD><CBB8><EFBFBD><EFBFBD>˺ţ<CBBA>~<7E><><EFBFBD><EFBFBD>Ϊǰ<C7B0><D7BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>᷵<EFBFBD><E1B7B5><EFBFBD>κ<EFBFBD>ֵ<EFBFBD><D6B5>
|
|
|
|
|
// Ҳ<><D2B2><EFBFBD>ܴ<EFBFBD><DCB4><EFBFBD><EFBFBD>κβ<CEBA><CEB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><F2A3A8B1><EFBFBD><EFBFBD>ر<EFBFBD><D8B1>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7>ڴ<EFBFBD><DAB4>ȣ<EFBFBD>ǰ<EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>Դ<EFBFBD><D4B4>
|
|
|
|
|
~setlist() {}
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>ȵĺ<C8B5><C4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
int Length() { return length; }
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λֵ<CEBB>ķ<EFBFBD><C4B7><EFBFBD>
|
|
|
|
|
T Get(int i) {
|
|
|
|
|
if (i < 1 || i > length) throw "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>÷Ƿ<EFBFBD>";
|
|
|
|
|
else
|
|
|
|
|
return data[i - 1];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//<2F><>ֵ<EFBFBD><D6B5>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ķ<EFBFBD><C4B7><EFBFBD>
|
|
|
|
|
int Locate(T x) {
|
|
|
|
|
for (int i = 0; i < length; i++)
|
|
|
|
|
if (data[i] == x) return i + 1;
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
void insert(int i, T x) {
|
|
|
|
|
if (length >= N) throw "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
|
|
|
|
|
if (i < 1 || i > length + 1) throw "λ<EFBFBD><EFBFBD><EFBFBD>쳣";
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ƶ<EFBFBD>һ<EFBFBD><D2BB>λ<EFBFBD><CEBB>
|
|
|
|
|
for (int j = length; j >= i; j--) {
|
|
|
|
|
data[j] = data[j - 1];
|
|
|
|
|
}
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD><EFBFBD>ŵ<EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>
|
|
|
|
|
data[i - 1] = x;
|
|
|
|
|
//<2F>ij<DEB8><C4B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
length++;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//ɾ<><C9BE>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:<3A><>λ<EFBFBD><CEBB>ɾ<EFBFBD><C9BE>
|
|
|
|
|
T Delete(int i) {
|
|
|
|
|
if (length == 0)throw "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
|
|
|
|
|
if (i < 1 || i > length)throw "λ<EFBFBD><EFBFBD><EFBFBD>쳣";
|
|
|
|
|
T x = data[i - 1]; //<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڷ<EFBFBD><DAB7><EFBFBD>
|
|
|
|
|
//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
for (int j = i; j < length; j++)
|
|
|
|
|
data[j - 1] = data[j];
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-1
|
|
|
|
|
length--;
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
return x;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>˳<EFBFBD><CBB3><EFBFBD><EFBFBD>
|
|
|
|
|
void PrintList() {
|
|
|
|
|
for (int i = 0; i < length; i++)
|
|
|
|
|
cout << data[i];
|
|
|
|
|
cout << endl;
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int main() {
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>test
|
|
|
|
|
int test[5] = {2, 1, 3, 4, 5};
|
|
|
|
|
//ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD>캯<EFBFBD><ECBAAF><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><D0B9><EFBFBD>˳<EFBFBD><CBB3><EFBFBD><EFBFBD>
|
|
|
|
|
setlist<int> a = setlist<int>(test, 5);
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>˳<EFBFBD><CBB3><EFBFBD><EFBFBD>
|
|
|
|
|
a.PrintList();
|
|
|
|
|
//<2F><><EFBFBD>Ը<EFBFBD><D4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>÷<EFBFBD><C3B7><EFBFBD>
|
|
|
|
|
cout << "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>" << a.Length() << endl;
|
|
|
|
|
cout << "λ<EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>" << a.Locate(2) << endl;
|
|
|
|
|
cout << "<EFBFBD><EFBFBD>ֵΪ<EFBFBD><EFBFBD>" << a.Get(1) << endl;
|
|
|
|
|
cout << "ɾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>" << a.Delete(1) << endl;
|
|
|
|
|
a.PrintList();
|
|
|
|
|
//<2F><><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
a.insert(2,0);
|
|
|
|
|
a.PrintList();
|
|
|
|
|
}
|