mirror of
https://gitee.com/apaki/unicstl.git
synced 2026-05-28 22:54:19 +08:00
全称: Universal C standard library
基于C语言实现的通用C库。包含常用数据结构和算法
| .vscode | ||
| 3rdparty | ||
| demo | ||
| doc | ||
| include | ||
| src | ||
| test | ||
| .gitignore | ||
| CMakelists.txt | ||
| LICENSE | ||
| mk.bat | ||
| README.md | ||
| run.bat | ||
unicstl
简介
全称: Universal C standard library
基于C语言实现的通用C库。包含常用数据结构和算法
标准:--std=c99
数据结构
| 数据结构 | 原理 | 说明 |
|---|---|---|
| stack | 栈 | |
| stack_new | 链表 | |
| stack_new2 | 动态数组 | |
| list | 列表 | |
| list_new2 | 动态数组 | |
| queue | 队列 | |
| queue_new | 单向链表 | |
| queue_new2 | 数组 | FIFO/空/满 |
| deque | 双端队列 | |
| deque_new | 双向循环链表 | |
| tree | 树 | |
| tree_avl_new | 二叉搜索树 | AVL树 |
| tree_rb_new | 二叉搜索树 | 红黑树 |
| heap | 堆 | |
| heap_new2 | 数组 | 最大堆/最小堆 |
特点
| 原理 | 说明 |
|---|---|
| 链表 | 有额外指针开销 |
| 动态数组 | 扩容时数据搬移代价较大 |
性能比较
| 项目 | 数组 | 链表 |
|---|---|---|
| 查找 | O(1) |
O(n) |
| 插入 | O(n) |
O(1) |
| 删除 | O(n) |
O(1) |
【A1】 若链表的操作流程为,先查找元素再删除元素。那么时间复杂度确实是$O(n)$。但是链表的增删优势,在其他应用有体现。比如双向队列,插入和删除效率都为$O(1)$。
版本
| 版本 | 说明 |
|---|---|
| 0.xx.xx | 测试版本 |