ꡬν λ΄μ©
at(π) : λ°°μ΄ Arrμ μΈλ±μ€ iμ μ μ₯λ κ°μ μΆλ ₯νλ€.(λ¨, 0 ≤ π ≤ π − 1)
add(π, πππππ) : λ°°μ΄ π΄ππμ μΈλ±μ€ πμμ π − 2μ κ°μ μ€λ₯Έμͺ½μΌλ‘ ν μΉΈμ© μ΄λνλ€. κ·Έλ¦¬κ³ λ°°μ΄ π΄ππμ μΈλ±μ€ πλ²μ§Έμ π£πππ’πλ₯Ό μ½μ νλ€. (λ¨, 0 ≤ π ≤ π − 1)
remove(π): λ°°μ΄ π΄ππμ μΈλ±μ€ π + 1μμ π − 1κΉμ§μ κ°μ, μΌμͺ½μΌλ‘ ν μΉΈμ© μ΄λμν¨λ€. κ·Έλ¦¬κ³ λ°°μ΄ π΄ππμ π − 1λ²μ§Έ μΈλ±μ€μ κ°μ 0μΌλ‘ ν λΉνλ€. (λ¨, 0 ≤ π ≤ π − 1)
set(π, πππππ): λ°°μ΄ π΄ππμ μΈλ±μ€ πλ²μ§Έμ π£πππ’πλ₯Ό ν λΉνκ³ π£πππ’πλ₯Ό μΆλ ₯νλ€. (λ¨, 0 ≤ π ≤ π −1)
print(): λ°°μ΄ π΄ππμ λͺ¨λ κ°μ 곡백μΌλ‘ ꡬλΆμ§μ΄ μ°¨λ‘λλ‘ μΆλ ₯νλ€.
μ½λκ° λ³λ‘ μ΄λ ΅μ§ μμμ μ½λμ μ£Όμλ§ λ¬κ³ μ€λͺ μ ν¨μ€νκ² λ€.
#include <iostream>
using namespace std;
class Array {
private:
int* arr; //λ°°μ΄, μ΄νμ λμ ν λΉ ν κ²
int arrSize; //λ°°μ΄μ ν¬κΈ°
public:
Array(int size) { //Arrayμμ±μ
arrSize = size; //arrSizeλ₯Ό μ
λ ₯λ°μ κ°μΌλ‘ μ΄κΈ°ν
arr = new int[arrSize]; //arrSizeν¬κΈ°μ intν λ°°μ΄ λμ ν λΉ
for (int i = 0; i < size; i++) { //κ° μΈλ±μ€ μμλ€ 0μΌλ‘ μ΄κΈ°ν
arr[i] = 0;
}
}
int at(int idx) { //idxμμΉμ μλ μμ 리ν΄
return arr[idx];
}
void add(int idx, int value) { //idxμμΉμ valueκ° μ½μ
if (idx > arrSize - 1) { //λ²μ λ²μ΄λλ©΄ -1μΆλ ₯
cout << -1 << endl;
}
else {
for (int i = arrSize - 2; i >= idx; i--) { //맨 λ€μμ 2λ²μ§Έ μμλΆν° idxλ²μ§Έ
arr[i + 1] = arr[i]; //μμκΉμ§ μΌμͺ½μΌλ‘ νμΉΈμ© μ΄λ
}
arr[idx] = value; //idxλ²μ§Έ μμμ κ° λ£κΈ°
}
}
void remove(int idx) { //μΈλ±μ€κ° idxμΈ μμ μμ
for (int i = idx; i < arrSize-1; i++) { //idxλΆν° 맨λ€μμ 2λ²μ§Έ μμκΉμ§
arr[i] = arr[i + 1]; //μμ λ€μμ μλ μμ μμ μκ² λμ
}
arr[arrSize - 1] = 0; //λ§μ§λ§ μμμ μ΄κΈ°κ° 0 λμ
}
void set(int idx, int value) { //μΈλ±μ€κ° idxμΈ μμλ₯Ό valueλ‘ λ체
arr[idx] = value;
}
void print() { //λͺ¨λ μμ μΆλ ₯
for (int i = 0; i < arrSize; i++) {
cout << arr[i] << " ";
}
cout << endl;
}
};
μΆλ ₯μ μλμ κ°λ€.
1.μ 체 μ½λ
#include <iostream>
using namespace std;
class Array {
private:
int* arr; //λ°°μ΄, μ΄νμ λμ ν λΉ ν κ²
int arrSize; //λ°°μ΄μ ν¬κΈ°
public:
Array(int size) { //Arrayμμ±μ
arrSize = size; //arrSizeλ₯Ό μ
λ ₯λ°μ κ°μΌλ‘ μ΄κΈ°ν
arr = new int[arrSize]; //arrSizeν¬κΈ°μ intν λ°°μ΄ λμ ν λΉ
for (int i = 0; i < size; i++) { //κ° μΈλ±μ€ μμλ€ 0μΌλ‘ μ΄κΈ°ν
arr[i] = 0;
}
}
int at(int idx) { //idxμμΉμ μλ μμ 리ν΄
return arr[idx];
}
void add(int idx, int value) { //idxμμΉμ valueκ° μ½μ
if (idx > arrSize - 1) { //λ²μ λ²μ΄λλ©΄ -1μΆλ ₯
cout << -1 << endl;
}
else {
for (int i = arrSize - 2; i >= idx; i--) { //맨 λ€μμ 2λ²μ§Έ μμλΆν° idxλ²μ§Έ
arr[i + 1] = arr[i]; //μμκΉμ§ μΌμͺ½μΌλ‘ νμΉΈμ© μ΄λ
}
arr[idx] = value; //idxλ²μ§Έ μμμ κ° λ£κΈ°
}
}
void remove(int idx) { //μΈλ±μ€κ° idxμΈ μμ μμ
for (int i = idx; i < arrSize - 1; i++) { //idxλΆν° 맨λ€μμ 2λ²μ§Έ μμκΉμ§
arr[i] = arr[i + 1]; //μμ λ€μμ μλ μμ μμ μκ² λμ
}
arr[arrSize - 1] = 0; //λ§μ§λ§ μμμ μ΄κΈ°κ° 0 λμ
}
void set(int idx, int value) { //μΈλ±μ€κ° idxμΈ μμλ₯Ό valueλ‘ λ체
arr[idx] = value;
}
void print() { //λͺ¨λ μμ μΆλ ₯
for (int i = 0; i < arrSize; i++) {
cout << arr[i] << " ";
}
cout << endl;
}
};
int main() {
Array ar(5);
ar.add(1, 10); //0 10 0 0 0
ar.add(1, 20); //0 20 10 0 0
ar.print(); //0 20 10 0 0 μΆλ ₯
ar.remove(1); //0 10 0 0 0
ar.print(); //0 10 0 0 0 μΆλ ₯
ar.remove(1); //0 0 0 0 0
ar.print(); //0 0 0 0 0 μΆλ ₯
}
2. μΆλ ₯ κ²°κ³Ό
'μ½λ©ν μ€νΈ > μλ£κ΅¬μ‘°' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[C++ μλ£κ΅¬μ‘°] λ¨μΌ μ°κ²° 리μ€νΈ(Singly Linked List) - κΈ°λ³Έ (0) | 2021.03.04 |
---|
λκΈ