全称: Universal C standard library 基于C语言实现的通用C库。包含常用数据结构和算法
Go to file
2025-04-24 17:34:21 +08:00
.vscode 修改迭代器,后续将迭代器接口统一 2025-04-24 10:15:09 +08:00
3rdparty unity同步到当前最新版本 2025-04-22 15:15:47 +08:00
demo 堆不是最大堆就是最小堆,直接对外拆分成两套接口 2025-04-24 16:50:35 +08:00
doc rbt测试通过 2024-09-02 21:14:16 +08:00
include 暂不是用函数注册的方式,毕竟增加了额外内存成本 2025-04-24 17:26:10 +08:00
src 暂不是用函数注册的方式,毕竟增加了额外内存成本 2025-04-24 17:26:10 +08:00
test heap添加最大堆的单元测试 2025-04-24 17:34:21 +08:00
.gitignore 为了方便在vscode上快速debug,顺便把vscode的配置也上传了 2024-06-22 17:43:15 +08:00
CMakelists.txt 编码统一使用utf8 2024-08-30 14:18:17 +08:00
LICENSE Initial commit 2024-06-17 15:03:15 +00:00
mk.bat unity多文件单元测试的编写思考,可能无法做大打印的信息直接定位到特定文件。只显示BEGIN的文件。 2024-08-28 00:15:21 +08:00
README.md 堆不是最大堆就是最小堆,直接对外拆分成两套接口 2025-04-24 16:50:35 +08:00
run.bat list单测及代码结构调整 2024-08-30 01:45:15 +08:00

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 ~ 99 代码框架大改,完全不兼容旧版
次版本号 0 ~ 99 代码框架尽量兼容旧版增信大功能、修复重大bug等
小版本号 0 ~ 99 代码框架兼容旧版新增小功能、修复bug等

举例说明:

// 若 major > 0 ,则代表正式发布版本
#define VER_MAJOR 1
#define VER_MINOR 2
#define VER_MICRO 5

工程命名

工程名(_功能)_v版本号_日期(_时间)(-其他信息)

括号内表示可选项

其他信息后缀 说明 详细
aX alpha内测版 可能仅测试了新增功能,但没有测试新增功能对其他模块的影响
bX beta公测版 不仅测试了新增功能,也测试了其他模块,尽量保证新增的功能不影响原来的旧功能。
... 或者添加其他有有效信息

举例说明:

unicstl_stack_v1.2.5_20240717-a0.zip

# 带a或者b后缀表示当前版本发布前的测试版。如果发布后则直接更新版本号了

修改日志

Unicstl 0.0.01 (2025-04-24)

new features: - add stack - add queue - add deque - add list - add heap - add tree - add graph bugfixed: - none others: - none