Skip to content

Instantly share code, notes, and snippets.

@mustafa-zidan
Created November 3, 2013 09:47
Show Gist options
  • Save mustafa-zidan/7288141 to your computer and use it in GitHub Desktop.
Save mustafa-zidan/7288141 to your computer and use it in GitHub Desktop.
C++ implementation to Dynamic Array Data Structure.
#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){}
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