Copyright@Ucare1990-2017.3.22于南山大学城 【独学而无友,则孤陋而寡闻】
简要:动态数组不是链表,是内存管理(函数)和(深)拷贝技术的灵活应用
==动态数组用一个结构体保存了动态数组的相关信息,把这个结构体称为"头"
==一个头结构体样式:typedef void(*p_t)(void * data);
typedef struct _darr_t{
void *p; //动态数组指针(头位置)
int size; //动态数组每个元素所占空间大小(字节)
int count; //动态数组元素个数
p_t my_destroy; //自定义的销毁函数
}darr_t;
==一图搞定动态数组操作原理:
==动态数组实现的功能列举【增/删/改/查/文件IO/遍历/销毁】
元素增加:
头部插入元素
尾部插入元素
索引插入元素
元素删除:
索引删除元素
关键字删元素
通过关键字删除第一次出现的元素
通过关键字删除所有的元素
元素改变:
索引改变元素
关键字改元素
通过关键字改某一指定元素
通过关键字改所有指定元素
元素查找:
索引查找元素
关键字查元素
关键字查找第一次出现的索引
关键字查找所有的索引
文件操作:
动态数组元素保存至文件
文件数据加载到动态数组
其它操作:
动态数组的遍历
动态数组得销毁
这样总结下来是不是很简单!只要脑袋里有内存模型,和要实现的操作,一切问题迎刃而解!
over Thanks!