mirror of
https://gitee.com/apaki/unicstl.git
synced 2025-05-18 03:51:35 +08:00
52 lines
1.3 KiB
Markdown
52 lines
1.3 KiB
Markdown
# unicstl
|
|
|
|
## 简介
|
|
全称: Universal C standard library
|
|
|
|
基于C语言实现的通用C库。包含常用数据结构和算法
|
|
|
|
> 标准:--std=c99
|
|
|
|
[数据结构详细说明](http://wenjianfeng.top)
|
|
|
|
## 数据结构
|
|
|数据结构 | 原理 |说明 |
|
|
|---|---|---|
|
|
| **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 | 测试版本 |
|