数据结构版本 0.0.5

DataStructure 版本 0.0.5

Ang Wei Neng维护。



DataStructure 版本 0.0.5

  • wn

CS3217问题集1

姓名: Ang Wei Neng

学号: A0164178X

导师: Herbert Ilhan Tanujaya

学生说明

  1. 克隆此仓库开始工作。
  2. 不要修改AppDelegate.swiftLaunchScreen.xibMain.storyboardImages.xcassets文件(您不必修改)。
  3. 在文件(《README.md》)中书写关于非编码问题的答案。
  4. 问题可在https://cs3217.gitbooks.io/problem-sets/content/ps/PS1/PS1.html找到

提示

  1. CS3217的GitBook网址为https://www.gitbook.com/book/cs3217/problem-sets/details。请经常访问Gitbook,因为它包含所有与CS3217相关的信息。您也可以在那里提出有关CS3217的相关问题。
  2. 看看.gitignore文件。当将Xcode项目提交到版本控制时,它包含忽略某些文件更改的规则。(此内容取自https://github.com/github/gitignore/blob/master/Swift.gitignore)。
  3. 提供了Swiftlint配置文件。建议您使用Swiftlint并遵循此配置。请记住,最终,这个工具只是一种指导;只要不损害代码质量,可以适当放宽一些例外。
  4. 不要过度劳累。享受乐趣!

问题 1:Swift 集合

字典键必须符合 Hashable 协议,因为我们想要对字典键进行哈希,以便以 O(1) 时间复杂度检索其项。

对键进行哈希处理后,我们能够获取到键值项所在的“篮子”。与遍历集合中所有项相比,我们现在可以借助这样一个事实:我们可以以 O(1) 时间复杂度找到键值项所在的“篮子”。假设满足 SUHA,则检索项的时间复杂度应为 O(1)。

问题 3:图遍历

问题 3.3

因为我们能够从错误中恢复,所以不应该抛出会终止程序的中断异常。如果我们无法从错误中恢复,应使用 assert/guard 来检查问题。