mirror of
https://gitee.com/apaki/unicstl.git
synced 2025-05-17 19:41:36 +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 | 测试版本 |