vector.h
Go to the documentation of this file.00001 #ifndef VECTORH
00002 #define VECTORH
00003
00004 #include "boolean.h"
00005 #include <stdio.h>
00006
00052 boolean CmpID(void *a,void *b);
00053
00063 void CopyID(void *a,void *b);
00073 void DeleteID(void *a);
00074
00075
00087 boolean CmpDouble(void *a,void *b);
00097 void CopyDouble(void *a,void *b);
00106 void DeleteDouble(void *a);
00107
00119 boolean CmpVoidPtr(void *a,void *b);
00129 void CopyVoidPtr(void *a,void *b);
00138 void DeleteVoidPtr(void *a);
00139
00148 typedef struct
00149 {
00150 void **elements;
00151 unsigned int ele_size;
00152 unsigned int num_ele;
00153 unsigned int max_ele;
00154 void (* Copy)(void *,void*);
00155 void (* Delete)(void *);
00156 } Tvector;
00157
00175 void InitVector(unsigned int ele_size,
00176 void (* Copy)(void *,void*),
00177 void (* Delete)(void *),
00178 unsigned int max_ele,Tvector *vector);
00179
00190 void ResetVector(Tvector *vector);
00191
00200 void CopyVector(Tvector *v_dst,Tvector *v_src);
00201
00211 unsigned int VectorFirstFreePos(Tvector *vector);
00212
00225 unsigned int VectorSize(Tvector *vector);
00226
00237 unsigned int VectorMaxSize(Tvector *vector);
00238
00248 boolean VectorEmpty(Tvector *vector);
00249
00264 boolean ElementInVector(void *e,boolean (* cmp)(void *,void*),Tvector *vector);
00280 unsigned int FindPos(void *e,boolean (* cmp)(void *,void*),Tvector *vector);
00281
00292 unsigned int NewVectorElement(void *e,Tvector *vector);
00293
00304 unsigned int NewFreeVectorElement(void *e,Tvector *vector);
00316 void SetVectorElement(unsigned int i,void *e,Tvector *vector);
00317
00329 void *GetVectorElement(unsigned int i,Tvector *vector);
00330
00340 void *GetLastElement(Tvector *vector);
00341
00354 void RemoveVectorElement(unsigned int i,Tvector *vector);
00355
00371 void SwapVectorElements(unsigned int i,unsigned int j,Tvector *vector);
00372
00373
00389 void ExtractVectorElement(unsigned int i,void *e,Tvector *vector);
00390
00405 void MoveVectorElement(unsigned int i,unsigned int ni,Tvector *vector);
00406
00414 void DeleteVector(void *vector);
00415
00416 #endif