Commit Graph

180 Commits

Author SHA1 Message Date
aac984ee08 队列的迭代器实现并测试通过 2025-04-24 14:44:13 +08:00
07bb44a4d8 queue添加iter 2025-04-24 14:26:41 +08:00
a249cae244 queue区分私有和公有 2025-04-24 14:01:49 +08:00
8f5540743f 迭代器合并一下吧,毕竟目前来看stack实现方式就两种,链表或者动态数组 2025-04-24 13:54:05 +08:00
4fa56e1ed8 iterator区分private和public 2025-04-24 13:07:17 +08:00
cc357caf6a 针对stack链表模式也实现了迭代器 2025-04-24 11:58:03 +08:00
86855420e2 栈的迭代器从栈顶到栈底,另外destory函数私有化 2025-04-24 11:36:56 +08:00
b396d80672 默认栈的迭代器从栈顶到栈底 2025-04-24 11:27:22 +08:00
07b2c142b8 给stack添加迭代器,但为什么heap会报错?? 2025-04-24 11:13:11 +08:00
d805d56fc9 删除旧版迭代器 2025-04-24 10:31:51 +08:00
0768e026dc 修改迭代器,后续将迭代器接口统一 2025-04-24 10:15:09 +08:00
0d6ba14451 根据实测情况来看,iter的方案是可行的,后续再考虑实现细节吧 2025-04-23 18:35:24 +08:00
23fc67cb49 tree接口函数修改 2025-04-23 13:57:15 +08:00
e49add3f16 heap修改接口函数 2025-04-23 13:47:55 +08:00
a3c60c7d38 deque修改接口函数 2025-04-23 10:36:09 +08:00
be306bfe5a list接口修改,后续是否有必要保持2的编号?因为list本就不打算使用链表,只使用动态数组,方便get和set 2025-04-23 10:20:14 +08:00
c19a337821 queue修改接口函数 2025-04-23 00:18:19 +08:00
769f7040d2 stack修改创建接口 2025-04-22 23:04:01 +08:00
232f288e8a 由于现阶段,需要先调节代码结构。因此暂时取消graph相关测试代码,后续再开发。 2025-04-22 14:35:42 +08:00
094e856a47 graph的bfs实现,但偶尔卡死。 2024-09-10 11:24:57 +08:00
04f8c116f3 graph_bfs还存在逻辑问题 2024-09-09 10:25:58 +08:00
4c68d1abdc 添加遍历函数 2024-09-05 16:13:08 +08:00
f148c26764 二维数组传参的问题 2024-09-03 15:56:01 +08:00
0ac0976bb6 添加打印信息 2024-09-03 12:49:08 +08:00
14ae536d71 图new和free测试通过 2024-09-03 10:15:28 +08:00
2d1c498c91 添加图框架 2024-09-03 00:59:34 +08:00
bd2ab13be8 迭代器:中序/后序遍历right优先测试通过 2024-09-02 11:44:25 +08:00
e6828c2cb0 迭代器:前序遍历right优先测试通过 2024-09-02 11:38:19 +08:00
c8f39bf53a 迭代器:层级遍历right优先测试通过 2024-09-02 11:31:05 +08:00
8044d3b7b4 迭代器:层级遍历测试通过 2024-09-02 11:21:55 +08:00
feffd2b3c7 迭代器:后续遍历测试通过 2024-09-02 11:04:11 +08:00
36707a4b72 中序遍历测试通过 2024-09-02 10:36:56 +08:00
5954acb1a0 把tree的迭代器调试通过了,left优先的前序遍历ok! 2024-09-02 02:51:49 +08:00
bfc6e88bb9 内存溢出真的很可怕,10秒左右直接给我电脑卡崩了。16G内存,以肉眼可见的速率直冲100% 2024-09-02 02:15:17 +08:00
c9a971971a tree的迭代器怎么算结束了,我没有想明白! 2024-09-02 01:54:53 +08:00
98ead745ff 把栈新节点的创建和释放独立成函数 2024-08-30 15:07:32 +08:00
170c2a5421 编码统一使用utf8 2024-08-30 14:18:17 +08:00
349889ea98 给list添加迭代器,方便遍历 2024-08-30 12:52:42 +08:00
d6811b824c iter测试还存在点问题 2024-08-30 11:43:23 +08:00
6c74793931 list单测及代码结构调整 2024-08-30 01:45:15 +08:00
03f4396227 stack添加单侧 2024-08-30 00:49:50 +08:00
87ff4b4127 queue单元测试基本完善 2024-08-29 19:16:55 +08:00
e8c5a06fa4 init也要加单元测试,但是推荐使用new接口。另外关于内存溢出问题交给使用者吧。new和free必须成对,init和destory必须成对出现 2024-08-29 18:54:58 +08:00
d8012720b6 init函数可以多次调用,但是为了防止内存泄漏。因此每次初始化时先执行一次destory操作 2024-08-29 18:30:48 +08:00
43cfbfcda6 修改queue.c代码结构,能公用的代码就不独立了 2024-08-29 17:23:17 +08:00
f3559d516a 添加队列pop单测 2024-08-29 16:23:00 +08:00
9c0b75e718 更新队列实现为静态函数 2024-08-29 15:44:09 +08:00
6ef644b07d 队列push测试新增队列节点new函数,方便后续修改代码结构(暂未调用,等单元测试函数写好后)。 2024-08-29 15:07:01 +08:00
142a248d34 如何保证单元测试覆盖率 2024-08-29 14:36:21 +08:00
383f9ffe4b 修复bug,这就是单元测试的意义吧! 2024-08-28 00:31:35 +08:00
447200a5e6 修改数据结构释放函数参数,以保证结构体指针被释放后能恢复到NULL 2024-08-28 00:23:18 +08:00
81c7854033 unity多文件单元测试的编写思考,可能无法做大打印的信息直接定位到特定文件。只显示BEGIN的文件。 2024-08-28 00:15:21 +08:00
8403eb69be 将原来的测试程序,修改成示例供参考 2024-08-27 20:50:16 +08:00
f55113756a vs2022居然不支持c99的vla(可变长数组),只好做了一下代码修改。提高一下兼容性。 2024-08-26 19:01:33 +08:00
0a97fc74b4 最小堆也调试通过 2024-07-04 15:49:17 +08:00
90d8cd340b 实测最大堆通过 2024-07-04 15:45:02 +08:00
cb580e7058 先把heap的基本框架搭建起来 2024-07-04 15:20:06 +08:00
6243c46d63 累了,明天再写吧 2024-07-03 17:42:35 +08:00
97cfafafa2 添加堆操作 2024-07-03 17:24:26 +08:00
7c1c811ea1 修改下注释 2024-07-03 14:41:41 +08:00
f58873baaa 修改deque,将头节点和尾节点拆开。方便代码理解。 2024-07-03 14:23:04 +08:00
7715825de9 将avl和rbt公用的函数重命名 2024-07-02 16:07:09 +08:00
91d6976009 删除旧版rbtree代码,已经现有代码中不必要的代码。 2024-07-02 15:52:20 +08:00
590a50d9e7 红黑树调试通过 2024-07-02 15:03:57 +08:00
68706331a1 实现tree_rb_check方便直接定位问题 2024-07-02 14:43:12 +08:00
454147ec81 我觉得这里是可以优化的,但是删除还是卡死。 2024-07-01 11:44:38 +08:00
e3f59e2b90 修复一个bug,红黑树的左右旋直接调用了AVL树的左右旋转,里面有平衡参数的设置,导致冲突。 2024-07-01 11:09:38 +08:00
bbc21c85a3 修改插入修复完成后,没有把grandfather重新赋值给node的bug 2024-07-01 09:54:50 +08:00
571b28fb4f 修改一下红黑树插入的错误问题 2024-06-28 16:50:01 +08:00
b0de90becf 为什么还不行? 2024-06-28 11:45:43 +08:00
6cd3356bdb 删除的情况,似乎考虑全了。但是为什么还会出错 2024-06-28 11:40:21 +08:00
e1763db190 添加注释和理解 2024-06-28 11:32:53 +08:00
0901b08417 添加注释 2024-06-27 21:27:32 +08:00
3a05a02979 rbtree删除还存在问题,后续理清思路再继续写 2024-06-26 01:11:35 +08:00
5f6790687f 添加备注 2024-06-25 18:16:07 +08:00
bd3258010a 红黑树插入实现完成,如果检测其正确性呢? 2024-06-25 18:02:47 +08:00
411f0c1fa5 修改一下函数命名错误的点 2024-06-25 17:55:43 +08:00
19ac6dbf49 将avl_rebalance函数也修改成非递归的实现方式 2024-06-25 14:12:21 +08:00
f744410a4c 先添加了color读取和设置方式 2024-06-25 13:36:02 +08:00
18677a64cd 删除旧代码并添加获取最大值和最小值的函数 2024-06-25 13:16:04 +08:00
82c5a881e7 新增clear代码并删除非必要注释 2024-06-25 13:05:34 +08:00
d7a05df2f4 利用队列实现树的高度计算 2024-06-25 11:45:27 +08:00
229e3f1140 经过分析,发现还是原来的代码,对前序、中序、后序三种遍历方式写的简介。于是就参考并优化了当前代码。 2024-06-25 10:50:21 +08:00
1f6dea6a67 后序遍历也使用栈实现了 2024-06-25 10:03:25 +08:00
4fa3a06e8a 用栈实现求高度,另外优化中序遍历代码。 2024-06-25 09:47:43 +08:00
6c7ce7f04e 合并远程分支 2024-06-25 09:13:01 +08:00
3316ce981a 中序遍历用栈实现了一下,虽然判断条件有点多。以后再考虑优化 2024-06-24 22:59:28 +08:00
05bfb65d8e 前序遍历用栈实现 2024-06-24 17:52:08 +08:00
904c6f99ff 大功告成!AVL树调试通过 2024-06-24 17:16:07 +08:00
6dc2271ab8 修改左旋和右旋不合理导致卡死的情况 2024-06-24 16:59:42 +08:00
3a2357e2a8 注释掉非必要代码,实测原来旧工程的删除操作是正确的。我现在这个删除3的时候,没有合适的rebalance 2024-06-24 15:00:56 +08:00
59e84f7131 删除节点时有概率卡死 2024-06-24 14:00:09 +08:00
ca4bf14b0c 可以确认,插入上没有问题! 2024-06-24 13:14:07 +08:00
49b8c92ad1 实测发现删除6的时候,parent指向错误 2024-06-24 11:49:12 +08:00
9a3a3f84a8 插入流程调试通过 2024-06-24 11:07:18 +08:00
73f63fb411 存在插入数据时,在特定情况下没翻转的bug 2024-06-24 10:51:12 +08:00
a8d378570f 修改判定方式,用2和1来判定更加合理,代码量少。 2024-06-24 10:23:05 +08:00
202832f29c balance=0时不需要旋转 2024-06-24 10:15:54 +08:00
4c450fd157 修复删除根节点的bug 2024-06-24 09:43:40 +08:00
4b306fe831 换一组测试数据,发现还是存在问题。明天接着测试。 2024-06-24 01:32:20 +08:00