Created
November 3, 2013 09:47
-
-
Save mustafa-zidan/7288141 to your computer and use it in GitHub Desktop.
C++ implementation to Dynamic Array Data Structure.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include "dynamicarray.h" | |
DynamicArray::DynamicArray() { | |
DynamicArray::DynamicArray(5); | |
} | |
DynamicArray::DynamicArray(int initSize){ | |
size = initSize; | |
int* arr = (int *) malloc(sizeof(int) * initSize); | |
} | |
DynamicArray::DynamicArray(const DynamicArray &original){ | |
size = original.size; | |
int* arr = (int *) malloc(sizeof(int) * size); | |
for (int i = 0; i < original.size; ++i) { | |
array[i] = original.array[i]; | |
} | |
} | |
DynamicArray::~DynamicArray(){ | |
delete[] array; | |
} | |
DynamicArray::insert(int position, int value) { | |
if( position > size) { | |
resize(position) | |
} | |
if( array[position] != null) { | |
shift(position); | |
} | |
array[position] = value; | |
} | |
DynamicArray::replace(int position, int value) { | |
if( position > size) { | |
resize(position) | |
} | |
array[position] = value; | |
} | |
DynamicArray::get(int position) { | |
return position < size ? array[position] : null; | |
} | |
DynamicArray::getSize() { | |
return array.length; | |
} | |
DynamicArray::resize(int newSize) { | |
int* arr = (int *) malloc(sizeof(int) * newSize); | |
for (int i = 0; i < size; ++i) { | |
arr[i] = array[i]; | |
} | |
size = newSize; | |
delete[] array; | |
array = arr; | |
} | |
DynamicArray::shift(int position) { | |
int* arr = (int *) malloc(sizeof(int) * size +1); | |
for (int i = 0; i < size; ++i) { | |
if( i >= position){ | |
arr[i+1] = array[i]; | |
} else { | |
arr[i] = array[i]; | |
} | |
} | |
size++; | |
delete[] array; | |
array = arr; | |
} | |
DynamicArray::&operator[](int index){} | |
DynamicArray::operator==(DynamicArray){} | |
DynamicArray::operator!=(DynamicArray){} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class DynamicArray { | |
public: | |
DynamicArray(); | |
DynamicArray(int initSize); | |
DynamicArray(const DynamicArray &original); | |
~DynamicArray(); | |
void insert(int position, int value); | |
void replace(int position, int value); | |
int get(int position); | |
int getSize(); | |
void resize(int new size); | |
void shift(int position); | |
int &operator[](int index); | |
bool operator==(DynamicArray); | |
bool operator!=(DynamicArray); | |
private: | |
int size; | |
int *array; | |
}; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment