Loading

CMU 15-445(Fall 2023) Project0 C++ Primer 个人笔记

CMU-15445 Project0

c++语法问题我直接问的gpt

测试文件#

测试文件都存放在/bustub-private/test目录下,可以自己修改里边的测试方法并且查看有哪些特殊情况需要处理。

Task1#

Get方法#

使用一个cur节点指向当前正在查找的节点,index指向当前当前正在查找的字符,在children_中查找key[index],没找到则返回nullptr,找到了则更新curindex,查找到最后一个字符进行判断。

Put方法#

维护一个cur节点,指向最后一个公共节点,初始值为root_->Clone()。然后遍历key,把公共的节点都Clone一下,同时更新cur节点,直到没有公共节点,再从cur节点处开始插入即可。

当先插入("aaa", 123), 再插入("aa", 456)时,要把aa对应的节点转换成一个带值的节点。

key""单独处理一下,直接存储在根节点当中即可。

Remove方法#

查找到要删除的节点,然后根据注释中的说明分情况将节点删除即可。

删除后还要注意当前节点被删除后,父节点可能没有children,那么父节点也需要被删除。我使用递归的方法去检查父节点是否需要删除。

Task2#

Get方法直接按照注释实现即可。

Put方法和Remove方法要参考Get方法的实现和任务的要求,仔细思考一下加锁时机即可。

提交#

在使用make submit-p0生成zip后,要在根目录调用一下 python3 gradescope_sign.py

通过截图#

posted @   焚风  阅读(496)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
主题色彩
点击右上角即可分享
微信分享提示