我想将树数据结构用于项目。
我正在关注本教程:Swift Tree Data Structure
在此示例中,节点具有带泛型类型的值参数。
class Node<T> {
var value: T
weak var parent: Node?
var children: [Node] = []
init(value: T) {
self.value = value
}
func add(child: Node) {
children.append(child)
child.parent = self
}
}
我想知道数据结构是否应该仅仅包含对模型对象的引用而不是自己的模型?
即。如果我想拥有一个家谱树的数据结构,那么最好这样做:
class Node {
var value: Person
weak var parent: Node?
var children: [Node] = []
init(value: Person) {
self.value = value
}
func add(child: Node) {
children.append(child)
child.parent = self
}
}
class Person {
name: String
init(name: String) {
self.name
}
}
或者这会更好:
class Person {
let name: String
weak var parent: Person?
var children: [Person] = []
init(name: String) {
self.name =
}
func add(child: Person) {
children.append(child)
child.parent = self
}
}
我可以想象将模型和结构分开是有帮助的,但是我也可以想象它使某些功能更加困难,例如与云同步。