You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

108 lines
2.8 KiB

2 years ago
#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();
}