这个小项目旨在成为一个有趣的协作库,用于存放数据结构和算法。 欢迎任何对此感兴趣的人贡献代码,任何人都可以将其用于他们的程序中。
该库被划分为三个子模块。 第一个子模块仅称为“emu”,包含基本的数据结构和算法。 第二个子模块称为“functional”,包含纯函数式代码。 第三个子模块称为“threadsafe”,顾名思义,包含线程安全的代码。 此外,每个子模块又被分为两个类别:数据结构和算法。 它们的含义应该是相当不言自明的。
对于每个元素,都应该有一个源文件和一个测试文件。 描述功能的源文件应位于 Sources/submodule/category/ 中,而描述验证功能的测试用例的测试文件应位于 Tests/submoduleTests/category/ 中。 您还需要在 Tests/LinuxMain.swift 中为每个测试文件编写一个条目。
为了使项目更易于导航和更具统一性,所有贡献都应遵循相同的命名约定。 例如,Bogo Sort 算法应该在 `bogoSort()` 函数(数据结构的类)中实现,并在 `BogoSort.swift` 文件中。 相应的测试应该在 `bogoSortTests` 类中的 `BogoSortTests.swift` 文件中。 所有测试函数都应该具有有意义的名称,并以“test”开头,例如 `testSortingSortedList`。
该代码是为 Swift 5 编写的。 要构建和测试,只需导航到根目录并运行 `swift build && swift test`。