本文件夹包含了自己在学习《数据结构与算法之美》专栏过程中实现的 c++ 代码。实现代码分别放在对应的文件夹中。每个文件夹内部,都会包含至少两个文件—— .cc 和 .hpp。xxx.test.cc 文件是具体数据结构/算法的测试代码。其内部详细测试了 .hpp 文件包含的所有功能,测试例子尽可能将一些边界条件考虑进去。.hpp 文件是具体数据结构/算法的实现文件,每个 .hpp 文件的开头部分,会由以下几个部分组成(至少包含前三个):
-
\brief描述当前实现文件对应的功能。
-
\Note在使用过程中,或者其他一些注意事项。
-
\TODO该文件中还没有完成的一些功能,或者一些需要将来改进的地方。
-
\TODO Reference为完成
\TODO留下的任务,将会参考的资料。 -
\Conclusion可能会从试验结果得出一些结论。
代码中涉及的理论,可以到该 Repo 中的 notes 目录,戳这里 👉 👉 笔记。
Note:代码运行方式
- Linux, ubuntu16.04 64 位,g++ 版本 5.4.0,其他平台未测试。
g++ xxx.cc -std=c++11 &&./a.out- Windows 系统,可以自行导入编译器。
1)代码相应注释中,对于 \complexity 标注的复杂度,默认是时间复杂度。如果代码的空间复杂度比较简单,没有做过多的标注。
2)相应实现文件开头部分,简单介绍了该文件的一些功能,列出了函数名字。如果想查看具体如何使用,可以根据函数名,跳转到相应实现代码处查看。
3)每个文件夹内都会有一个相应的测试文件。测试例子可能没有包含全部边界或者其他未考虑的情况。如果您找到了测试用例的 Bug ,欢迎提供 Issues。
在实现代码过程中,可能存在潜在的 Bug,希望细心的你能够在参考代码的过程中,多多发现 Bug。当然目前的实现代码还有很多不足,比如实现过于简单,没有很好的发挥 c++ 一些高级特性,这对于 c++ 新手的我来说在所难免。再比如有一些功能没有加入其中。对于 Bug ,可以直接在 GitHub 上进行 Issues,大家一起交流进步:smile:。