我有一個樹形結構的實現,如下所示:如何顯示樹節點的當前位置
class Node {
let value: String
var parentNode: Node?
var childenNode = [Node]()
func appendNode(node: Node) {
childenNode.append(node)
node.parentNode = self.parentNode
}
func isLeaveNode(node: Node) -> Bool{
if node.childenNode.isEmpty {
return true
} else {
return false
}
}
init(value: String) {
self.value = value
}
}
我想有返回它採取了路徑的函數來獲取到當前節點。例如:假設我有一個離開節點node
,並且到達該離開節點所用的路徑爲Main Menu -> Setting -> User Options -> Set User Options
,那麼我需要一個返回該路徑的函數:例如, func path(node: Node) -> path
。我如何實現?
我試過用for-in
循環來循環父節點。但是,由於Node
不符合sequence
協議,因此無法完成。
謝謝堆!任何幫助將不勝感激!
只是環回父節點,直到父節點是零 –
是的,我已經試過了,但由於節點不符合'sequence'協議,這是不可能的 –
嘗試這樣的事: 'FUNC path(node:Node) - > [Node] {return path.parentNode == nil? [self]:path(node:parentNode!)+ [self]}' –