Commit Graph

179 Commits

Author SHA1 Message Date
f512f72d2e refactor(darray): 优化内存策略并移除动态扩容开关。固定容量场景交由上层封装,darray不再支持。 2026-05-14 00:32:49 +08:00
864273cef2 bugfix(stack): 栈的stack_new宏定义多套了一层sizeof,展开后sizeof(sizeof(int)),让obj_size=8了 2026-05-13 21:50:31 +08:00
97653622c1 stack->peek把data的内存给修改了,后续再排查一下原因 2026-05-13 19:27:38 +08:00
2278bad0a4 feat(perf): 重构性能测试框架(支持多组参数配置)并增加perf_log(利用darray实现并格式化输出) 2026-05-13 17:00:39 +08:00
cd6eff28a7 ringbuffer重构底层代码,并将obj和index的操作独立成内联函数,另外将deque的底层架构直接修改为ringbuffer 2026-05-12 18:42:43 +08:00
a58d480ae4 ringbuffer调试通过,疑问点:感觉复用darray相对于直接malloc并没有简化多少,只是把计算偏移这部分简化了。 2026-05-12 16:29:40 +08:00
9a9f18ac40 将index、len、size等变量的定义,都配置成size_t而不是uint32_t,至于列表对应的负数索引,先按照int吧,后续有必要再修改成ssize_t 2026-05-12 10:36:31 +08:00
26eeb65cc9 refactor(core)!: 重构链表核心API,增加 const 正确性与自定义断言
- 将所有打印和比较函数的参数指针从 `void*` 修改为 `const void*`,增强类型安全
- 引入自定义断言宏 `unicstl_assert` 及其实现,替换标准 `assert`
- 优化动态数组容量增长策略,新增 `unicstl_new_capacity` 函数
- 重构链表 接口:`push`/`pop` 重命名为 `push_back`/`pop_front`,新增 `push_front`/`pop_back`/`insert`/`remove`/`contains` 方法
- 移除链表结构体中未使用的 `_index_front` 和 `_index_back` 成员
- 在头文件中补充关键函数的时间复杂度注释
2026-05-12 02:26:21 +08:00
17a9d51437 linklist先照搬了queue,后续用到再修改吧。另外,darray中的部分函数传参,我添加了const修饰 2026-05-11 19:05:58 +08:00
1532d3716c darray实现 2026-05-11 15:16:42 +08:00
803f489ee7 Linux平台编译也通过 2026-02-13 18:36:03 +08:00
32f2605656 基本上完善到我理想中的样子了 2025-04-30 15:01:55 +08:00
3f8f418d4e 逻辑相对清晰一点,还差部分逻辑没调通 2025-04-30 13:25:12 +08:00
97ae2a54c4 添加新的测试项,并尝试slice是否可以优化的更加直观 2025-04-30 11:14:59 +08:00
802d63641c 针对start和end超出范围的处理 2025-04-30 02:18:07 +08:00
b5a83f865e 添加step=2的单元测试 2025-04-30 01:50:58 +08:00
e85e1c56f3 将切片的各种情况分开来测试 2025-04-30 01:38:06 +08:00
2dfc0b2b17 先调试通过了,后续再考虑优化 2025-04-30 01:28:37 +08:00
0f18ddf567 slice单元测试基本都添加完毕,现在可以针对性的进行修改了 2025-04-30 00:58:28 +08:00
178d0bf5b4 看起来得加一个宏定义了,专门用语处理end无限长的 2025-04-30 00:37:04 +08:00
e49f425e43 添加函数注释 2025-04-30 00:17:59 +08:00
643d601c6e 添加slice函数,但是还有两个问题没有解决 2025-04-30 00:01:37 +08:00
24844219df 添加insert和delete的单元测试 2025-04-29 22:04:22 +08:00
c8a48e6c63 想统一inset和pop但是编译测试不通 2025-04-29 16:25:27 +08:00
851f815120 修改list相关接口描述以及调通由于删除deque的接口导致的编译问题 2025-04-29 14:53:54 +08:00
d278ef008f tree_order枚举类型重命名,防冲突 2025-04-27 11:41:20 +08:00
ca4ab10123 deque区分正向和反向遍历 2025-04-27 01:16:22 +08:00
9e270b7425 后续考虑matrix是利用list来实现还是直接函数指针实现。但考虑到用一维指针或者二维指针都有不方便的地方。 2025-04-27 00:16:44 +08:00
9d5f71250e graph封装底层,让dfs和dfs代码看起来更加直观 2025-04-26 18:43:59 +08:00
5a2c2ceccc graph->DFS调试通过 2025-04-26 18:22:47 +08:00
5e83dc2917 思路楼乱了 2025-04-26 17:27:05 +08:00
43b237487a 无边的节点没有被压到栈中去 2025-04-26 16:02:16 +08:00
43706105bb graph的迭代器bfs遍历模式调试通过 2025-04-26 15:12:43 +08:00
98eb005a4a bfs的遍历还存在问题 2025-04-26 15:01:15 +08:00
ce973043d8 graph默认只对顶点进行遍历,后续实现bfs和dfs 2025-04-26 13:40:23 +08:00
3ac92de18e 边的核心操作都添测试通过了,但是我个人觉得写的不好。后续再考虑优化。 2025-04-25 18:19:22 +08:00
c411ee96eb add_edge调试通过,后续再区分是有向图还是无向图 2025-04-25 16:56:58 +08:00
7ad5631aec 目前edge打印还是有错误,from和to的顶点不对 2025-04-25 16:32:11 +08:00
628df4c1a0 添加add_edge单元测试 2025-04-25 16:04:14 +08:00
0520bb99ae 顶点链表方式调试通过 2025-04-25 14:04:14 +08:00
238c16c3ec graph删除顶点和查找顶点的接口都测试通过 2025-04-25 13:56:32 +08:00
163f3c55da vertex的添加代码实现并调试通过 2025-04-25 13:39:17 +08:00
af1a3703ba graph的vertex和edge结构体都重新定义,kernel函数也重新命名 2025-04-25 13:03:23 +08:00
14d64cc0a2 修改枚举类型,命名更加简洁 2025-04-25 01:47:58 +08:00
0a291edb3d 在示例中去掉原遍历接口 2025-04-25 00:21:43 +08:00
192f1962e6 删除非必要代码 2025-04-24 23:39:37 +08:00
461e32b430 tree删除旧版迭代器接口 2025-04-24 23:35:31 +08:00
f9486bae40 tree迭代器单元测试通过 2025-04-24 19:12:16 +08:00
34875ce3fa 太棒了!tree的新版迭代器调试通过了。后续可以删除那么多没用的成员函数了 2025-04-24 18:57:57 +08:00
5ab918b067 tree深度优先遍历的迭代器都调试通过了 2025-04-24 18:49:00 +08:00