[자료구조] 배열 구현하기 c++
배열 구현 코드
#include <iostream>
using namespace std;
class Array {
private:
int* arr; // 배열 <- 이후에 동적할당
int size; // 배열 크기
public:
// 생성자
Array(int size) {
this->size = size;
arr = new int[size]; // size를 동적으로
for (int i = 0; i < size; i++) { // arr 0으로 초기화
arr[i] = 0;
}
}
// idx 위치의 원소를 return
int at(int idx) {
return arr[idx];
}
// idx 위치에 value 더하기
void add(int idx, int value) {
if (idx >= size) {
cout << "idx 위치 오류 - 더할 수 없습니다" << endl;
}
else {
for (int i = size - 2; i >= idx; i--) {
arr[i + 1] = arr[i];
}
arr[idx] = value;
}
}
// remove 인덱스 idx의 원소 삭제
void remove(int idx) {
if (idx < 0 or idx >= size) {
cout << -1 << endl;
}
for (int i = idx + 1; i < size; i++) {
arr[i - 1] = arr[i];
}
// 마지막원소 초기화
arr[size - 1] = 0;
}
// 모든 원소 출력
void print() {
for (int i = 0; i < size; i++)
{
cout << arr[i] << " ";
}
cout << endl;
}
};
int main() {
Array arr(5);
arr.add(0, 1);
arr.add(0, 2);
arr.add(0, 3);
arr.add(0, 4);
arr.add(0, 5);
arr.print();
cout << "-----\n";
arr.remove(1);
arr.print();
}
'CS > 자료구조' 카테고리의 다른 글
[자료구조] 링크드 리스트 정리 및 구현 (2) | 2022.08.07 |
---|---|
[자료구조] 힙(Heap)과 완전 이진 트리(Complete binary tree) 개념 및 구현 (0) | 2022.04.19 |
[자료구조] 해시맵(Hash Map) 정리 및 구현하기 (3) | 2022.03.20 |