mirror of
https://gitee.com/apaki/unicstl.git
synced 2025-05-17 11:31:37 +08:00
1.3 KiB
1.3 KiB
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 | 测试版本 |