用途:该技能面向在 C 语言中实现数据结构与手动内存管理的场景,提供数组、链表、树、哈希表等基础与进阶结构的实现参考。
主要能力
- 数组与指针:静态数组按指针算术访问;动态数组(DynamicArray)以 data/size/capacity 维护,push 时容量翻倍扩容,提供 get 越界检查与 free 释放。
- 结构体与联合体:普通结构体、含柔性数组成员的 String、union 位级访问(uint32_t/uint16_t/uint8_t)以及带类型标签的 Variant 式 union。
- 链表:单链表(push_front、push_back、remove、打印、free)与双向链表(push_front、push_back、正反向打印、free)。
- 栈与队列:数组栈(push/pop/peek、判空判满)与循环缓冲队列(enqueue/dequeue、mod 回绕)。
- 二叉树:二叉搜索树的插入、查找、删除(含双子节点用右子树最小值替换)、中/前/后序遍历与递归释放。
- 哈希表:djb2 风格哈希(hash = ((hash << 5) + hash) + c),链地址法解决冲突,
hashtable_insert/get/remove,key 用 strdup,节点前置插入。
使用方式:通过 malloc/calloc/realloc/free 手动管理内存,成对释放;插入与访问返回 0/-1 或 bool 表示成功失败。
适用场景:学习或实现 C 基础数据结构、需要无外部依赖的轻量容器、嵌入式或系统级开发中的内存控制场景。
限制:需要自行管理内存,扩容、越界和空指针均由调用方检查;资料未提供具体安装命令、性能基准、兼容平台或测试步骤,相关事实暂未提供。