//ArrayList.h
/*-----------------------------
*
* For 算法数据结构
* IDE DEV-CPP4.9.2
* Auhtor Czp
* Date 2012/11/4
*------------------------------
*/
//防止重复导入
#ifndef MY_ARRAY_LIST_H
#define MY_ARRAY_LIST_H
//如果C++里调用,采用C编译器
#ifdef __cplusplus
extern "C" {
#endif
//检查是否成功申请内存
#define Asert(par) if(par==NULL) {\
printf("%s,%d malloc null",__FILE__,__LINE__);\
return NULL;}
#define INIT_SIZE 10 //默认的数组大小
typedef int Element; //定义List里的元素类型
typedef void (*PrtFun)(Element);//打印函数
typedef int (*CmpFun)(Element,Element);//比较函数
typedef struct _ArrayList{ //定义ArrayList
Element *data; //List的元素
size_t size; //List可以容纳个数
size_t index;//当前已有元素索引
CmpFun cmpFun;//比较函数指针
PrtFun ptrFun;//打印函数指针
}ArrayList;
/*********************************
*@desc:创建ArrayList
*@return: NULL->内存申请失败
arr->指向ArrayList的指针
**********************************
*/
ArrayList *createArrayList(CmpFun cmp,PrtFun pfun)
{
//申请数组的内存
ArrayList *arr = (ArrayList *)malloc(sizeof(ArrayList));
Asert(arr);
Element *data = (Element *)malloc(INIT_SIZE*sizeof(Element));
Asert(data);
arr->data = data;
arr->index = 0;
arr->size = INIT_SIZE;
arr->cmpFun &#
C语言实现支持多类型的ArrayList
最新推荐文章于 2023-09-13 19:14:40 发布
这个博客展示了如何使用C语言实现一个通用的ArrayList数据结构,包括创建、添加元素、设置元素、打印、查找、删除等功能。代码示例中包含了完整的ArrayList结构体定义和相关操作函数,以及一个简单的测试用例。
摘要由CSDN通过智能技术生成