array.h 1.1 KB

12345678910111213141516171819202122232425262728
  1. #ifndef ARRAY_H
  2. #define ARRAY_H
  3. #include "lib.h"
  4. typedef struct {
  5. int size; // 陣列目前的上限
  6. int count; // 陣列目前的元素個數
  7. void **item; // 每個陣列元素的指標
  8. } Array; // 動態陣列的資料結構
  9. typedef enum { KEEP_SPLITER, REMOVE_SPLITER } SplitMode;
  10. extern void ArrayTest();
  11. extern Array* ArrayNew(int size);// 建立新陣列
  12. extern void ArrayFree(Array *array, FuncPtr1 freeFuncPtr); // 釋放該陣列
  13. extern void ArrayAdd(Array *array, void *item); // 新增一個元素
  14. extern void ArrayPush(Array *array,void *item); // (模擬堆疊) 推入一個元素
  15. extern void* ArrayPop(Array *array); //(模擬堆疊) 彈出一個元素
  16. extern void* ArrayPeek(Array *array); //(模擬堆疊) 取得最上面的元素
  17. extern void* ArrayLast(Array *array); // 取得最後一個元素
  18. extern void ArrayEach(Array *array, FuncPtr1 f); //對每個元素都執行 f 函數
  19. extern int ArrayFind(Array *array, void *data, FuncPtr2 fcmp);
  20. extern Array* strsplit(char *str, char *spliter, SplitMode mode);
  21. #endif