Compare commits

...

2 Commits

Author SHA1 Message Date
932b078778 修改函数原型说明 2025-04-27 10:23:56 +08:00
1b5b69024e 在README中添加个人信息 并添加版本更新说明 2025-04-27 02:46:44 +08:00

View File

@ -1,13 +1,19 @@
# unicstl # unicstl
## 简介 ## 简介
全称: Universal C standard library 基于C语言实现的通用C库包含常用数据结构和算法。
基于C语言实现的通用C库。包含常用数据结构和算法 **全称:** Universal C standard library
> 标准:--std=c99 **作者:** 温建峰
[数据结构详细说明](https://blog.wenjianfeng.top) **主页:** [博客](https://blog.wenjianfeng.top)
**邮箱:**[orig5826@163.com](mailto:orig5826@163.com)
## 编译环境
- 编译器gcc 13.2.0
- 标准:--std=c99
## 数据结构 ## 数据结构
|数据结构 | 原理 |说明 | |数据结构 | 原理 |说明 |
@ -27,6 +33,8 @@
| tree_rb_new | 二叉搜索树 | 红黑树 | | tree_rb_new | 二叉搜索树 | 红黑树 |
| **heap** | |**堆** | | **heap** | |**堆** |
| heap_new2 | 数组 | 最大堆/最小堆 | | heap_new2 | 数组 | 最大堆/最小堆 |
| **graph** | |**图** |
| graph_new | 链表 | |
## 接口函数原型 ## 接口函数原型
```c ```c
@ -51,13 +59,16 @@ bool pop(void* obj); // [栈、队列] 出栈/出队
bool pop_front(void* obj); // [双端队列] 头部出队 bool pop_front(void* obj); // [双端队列] 头部出队
bool pop_back(void* obj); // [双端队列] 尾部出队 bool pop_back(void* obj); // [双端队列] 尾部出队
bool peek(void* obj); // [栈] 查看栈顶元素 bool peek(void* obj); // [栈] 查看栈顶元素
bool front(void* obj); // [队列、双端队列] 查看头部元素 bool front(void* obj); // [队列、双端队列] 查看头部元素
bool back(void* obj); // [队列、双端队列] 查看尾部元素 bool back(void* obj); // [队列、双端队列] 查看尾部元素
// bool add_(const void* obj); // 添加元素 <顶点> // bool insert(const void* obj); // [树] 插入元素 <insert用于和位置相关操作>
// bool del_(const void* obj); // 删除元素 <顶点> // bool delete(const void* obj); // [树] 删除元素
// bool find_(const void* obj); // 查找元素 <顶点>
// bool add_(const void* obj); // [图:顶点、边] 添加元素 <add不考虑位置关系>
// bool del_(const void* obj); // [图:顶点、边] 删除元素
// bool find_(const void* obj); // [图:顶点、边] 查找元素
// 基础操作 // 基础操作
uint32_t size(); // 获取大小 uint32_t size(); // 获取大小
@ -74,15 +85,16 @@ void* iter_next(); // 迭代器下一个元素
// -------------------- 扩展功能 -------------------- // -------------------- 扩展功能 --------------------
// 元素相关操作 // 元素相关操作
bool append(const void* obj); // 追加元素 <push_back> 一般用于list bool append(const void* obj); // 追加元素 <push_back> 一般用于list
bool delete(const void *obj); // 删除元素 bool delete(const void* obj); // 删除元素
bool find(const void* obj); // 查找元素 // bool remove(const void *obj); // 删除元素 <同delete>
bool find(const void* obj); // 查找元素 <返回值bool/uint32_t/void*待定>
bool contains(const void* obj); // 判断元素是否存在 <返回bool>
uint32_t count(const void* obj); // 统计元素个数 uint32_t count(const void* obj); // 统计元素个数
// 索引相关操作 // 索引相关操作
uint32_t index(void *obj); // 获取元素索引 uint32_t index(void *obj); // 获取元素索引
bool insert(uint32_t index, const void* obj); // 插入元素 bool insert(uint32_t index, const void* obj); // 插入元素 <非树>
bool remove(uint32_t index); // 删除元素 bool erase(uint32_t index); // 删除元素
// bool erase(uint32_t index); // 删除元素 <删除元素但不释放内存> 暂未考虑实现
bool set(uint32_t index, const void* obj); // 设置元素 bool set(uint32_t index, const void* obj); // 设置元素
bool get(uint32_t index, void* obj); // 获取元素 bool get(uint32_t index, void* obj); // 获取元素
@ -154,6 +166,18 @@ unicstl_stack_v1.2.5_20240717-a0.zip
## 修改日志 ## 修改日志
### Unicstl 0.0.02 (2025-04-24)
- new features
- graph add function: add/del/find vertex/edge
- graph add function: bfs/dfs
- tree remove old iterator and add new iterator
- deque add order select
- bugfixed:
- none
- others:
- none
### Unicstl 0.0.01 (2025-04-24) ### Unicstl 0.0.01 (2025-04-24)
- new features - new features
- add stack - add stack