diff options
Diffstat (limited to 'Vector.h')
-rw-r--r-- | Vector.h | 33 |
1 files changed, 21 insertions, 12 deletions
@@ -3,20 +3,15 @@ #ifndef HEADER_Vector #define HEADER_Vector /* -htop -(C) 2004-2010 Hisham H. Muhammad +htop - Vector.h +(C) 2004-2011 Hisham H. Muhammad Released under the GNU GPL, see the COPYING file in the source distribution for its full text. */ #include "Object.h" -#include <stdlib.h> -#include <string.h> -#include <stdbool.h> - -#include "debug.h" -#include <assert.h> +#define swap(a_,x_,y_) do{ void* tmp_ = a_[x_]; a_[x_] = a_[y_]; a_[y_] = tmp_; }while(0) #ifndef DEFAULT_SIZE #define DEFAULT_SIZE -1 @@ -24,16 +19,15 @@ in the source distribution for its full text. typedef struct Vector_ { Object **array; - Object_Compare compare; + ObjectClass* type; int arraySize; int growthRate; int items; - char* vectorType; bool owner; } Vector; -Vector* Vector_new(char* vectorType_, bool owner, int size, Object_Compare compare); +Vector* Vector_new(ObjectClass* type, bool owner, int size); void Vector_delete(Vector* this); @@ -45,7 +39,14 @@ int Vector_count(Vector* this); void Vector_prune(Vector* this); -void Vector_sort(Vector* this); +// If I were to use only one sorting algorithm for both cases, it would probably be this one: +/* + +*/ + +void Vector_quickSort(Vector* this); + +void Vector_insertionSort(Vector* this); void Vector_insert(Vector* this, int idx, void* data_); @@ -59,8 +60,16 @@ void Vector_moveDown(Vector* this, int idx); void Vector_set(Vector* this, int idx, void* data_); +#ifdef DEBUG + extern Object* Vector_get(Vector* this, int idx); +#else + +#define Vector_get(v_, idx_) ((v_)->array[idx_]) + +#endif + extern int Vector_size(Vector* this); /* |