CS/자료구조

[자료구조] 배열 구현하기 c++

happy_life 2022. 8. 6. 10:33

[자료구조] 배열 구현하기 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();
}