Little Jay

[C++] 자료구조/Array 구현 본문

알고리즘/DataStructure

[C++] 자료구조/Array 구현

Jay, Lee 2021. 7. 22. 23:12
#include <iostream>
#include <string>
using namespace std;

class Array {
public:
	int n;
	int* arr;

	Array(int size) {
		this->n = 0;
		this->arr = new int[size];
		for (int i = 0; i < size; i++) {
			arr[i] = 0;
		}
	}

	void at(int i) { // return arr[i]
		if (arr[i] == 0) { // if arr[i] is null
			cout << 0 << "\n";
		}
		else {
			cout << arr[i] << "\n";
		}
	}

	void set(int i, int x) { // overwrite index
		if (arr[i] != 0) { 
			arr[i] = x;
		}
		else { // if arr[i] is null
			cout << 0 << "\n";
		}
	}

	void add(int i, int x) { //add x in arr[i]
		if (arr[i] == 0) { // if arr[i] is null
			for (int k = 0; k < 10000; k++) {
				if (arr[k] == 0) {
					arr[k] = x;
					break;
				}
			}
		}
		else {
			for (int k = n - 1; k >= i; k--) {
				arr[k + 1] = arr[k];
			}
			arr[i] = x;
		}
		n += 1;
	}

	void remove(int i) { // delete arr[i] and return arr[i]
		if (arr[i] == 0) { // if arr[i] == null
			cout << 0 << "\n";
		}
		else {
			int val = arr[i];
			cout << val << "\n";
			arr[i] = 0;
			for (int k = i + 1; k <= n - 1; k++) {
				arr[k - 1] = arr[k];
			}
			arr[n - 1] = 0;
			if (n > 0) {
				n -= 1;
			}
		}
	}

	void printArray() { //print all elements in array
		if (n == 0) { // is arr is null, print 0
			cout << 0 << "\n";
		}
		else {
			for (int i = 0; i < n; i++) {
				cout << arr[i] << " ";
			}
			cout << "\n";
		}
	}

};​

c++로 구현한 array

내가 쓰려고 구현한 코

'알고리즘 > DataStructure' 카테고리의 다른 글

Quick Sort, MergeSort with 백준 2751번  (0) 2022.03.28
[C++] 자료구조/Queue 구현  (0) 2022.01.04
[C++] 자료구조/Stack 구현  (0) 2021.11.20
Linked List Simple Question  (0) 2021.09.25
[C++] 자료구조/LinkedList 구현  (0) 2021.08.28
Comments