我得到了一個練習來找到Scheme中二叉樹的路徑。 基本上,它就像在Scheme中查找從根到樹葉的所有路徑。 但不是打印節點的值,我們必須打印到葉子的方式。 (打印:右前左左右)二叉樹中的方案路徑
-5
A
回答
0
如果您正在討論尋找從根到特定葉的路徑,您可以基本上以遞歸方式搜索您的樹,並且在做這些時應該將一個列表作爲參數傳遞給您的搜索函數跟蹤已經採用的路徑,並且您的搜索功能應返回路徑列表。
例如,假設您在樹中搜索L,您需要檢查L是在左側還是右側的子樹中。發現其中L位於您可以將方向基本上添加到您的路徑列表的子樹後,你可以這樣做
(define (search L tree)
(cond
((null? tree) '() )
((member L leftsubtree) (cons 'left (search L leftsubtree))
((member L rightsubtree) (cons 'right (search L rightsubtree)))))
我們做什麼。這是我們發現的子樹L位於然後添加方向(左邊或右邊)到從該子樹的父節點到L的路徑的前面。當然,如果複製並粘貼此代碼,則不起作用。所以你需要根據你的樹形表示實現這個函數,你可能需要爲你的情況實現成員函數。我希望它有幫助。
0
(define (ab-chemin-aux AB e CH)
(if (ab-noeud? AB)
(if (equal? e (ab-etiquette AB))
CH
(or (ab-chemin-aux (ab-gauche AB) e (append CH (list "gauche")))
(ab-chemin-aux (ab-droit AB) e (append CH (list "droit")))))#f))
(define (ab-chemin AB e)
(ab-chemin-aux AB e (list)))
我想出了答案,但我忘了在這裏問。謝謝您的回答。希望這可以幫助某人
相關問題
- 1. 打印所有路徑的二叉樹
- 2. 二叉樹路徑總和(python)
- 3. 二叉樹的直徑
- 4. 二叉樹方法
- 5. 二叉樹方法
- 6. 如何找到二叉樹中最長的連續路徑
- 7. 遞歸獲取二叉樹中的節點路徑
- 8. 遞歸找到二叉樹中節點的路徑
- 9. 二叉樹中的方案/球拍操作(+, - ,*,/)
- 10. 如何在R中循環二叉樹路徑?
- 11. 二叉樹到二叉搜索樹(BST)
- 12. 二叉樹 - 哪一種二叉樹
- 13. 記錄在二叉樹數據的所有路徑
- 14. 二叉搜索樹 - 得到最重的路徑算法C++
- 15. Java二叉搜索樹 - 計算到節點的路徑長度
- 16. 遞歸二叉樹最大路徑的呼叫解釋總和
- 17. 打印二叉樹(DFS)的所有路徑
- 18. 屬性二進制代碼作爲Python中二叉樹的路徑
- 19. 在方案中廣度第一個二叉樹遍歷
- 20. 查找二叉樹(Java)的兩個樹葉之間的最大路徑總和
- 21. 路徑葉其在二叉樹特定數額
- 22. 輸出不打印?二叉樹從根到葉,但路徑
- 23. Python二叉樹
- 24. 非二叉樹
- 25. balanced()二叉樹
- 26. 二叉樹
- 27. JAVA:二叉樹
- 28. 二叉樹
- 29. 二叉樹值
- 30. Prolog中的二叉樹
請參閱下面的答案,以獲取有關如何改進此問題的指導 – Peaches491
Hama,您是否有任何代碼表明您已在解決此問題上做出了任何努力? –
提示:添加一個包含「到目前爲止的路徑」的函數參數。 – molbdnilo