मैं बहुत की तरह एक पेड़ के लिए एक प्रकार है:एक पेड़ का पता लगाने?
data Tree a = EmptyTree | Tree a [Tree a] deriving (Show, Ord, Eq)
freeTree :: Tree Integer
freeTree = Tree 2 [Tree 5 [], Tree 6 [Tree 8 [], Tree 9 []], Tree 7 []]
main = print freeTree
मुझे क्या करना कोशिश कर रहा हूँ एक समारोह है कि इस्तेमाल किया जा सकता लिखना है तो की तरह कहते हैं:
trace freeTree
और क्या एक निशान पर इस पेड़ वापसी होगी है: [2],[2,5],[2,6],[2,7],[2,6,8],[2,6,9]
मूल रूप से क्या यह करता है:
पहले से ही 'ढेर' पर नोड्स की एक सूची रखें (रूट नहीं प्रत्येक गहराई पर हमें यहां मिला)। हर बार जब आप एक नए नोड तक पहुंचते हैं, तो एक सूची जोड़ें जो परिणाम सूची में स्टैक नोड्स ++ current_node की सूची है।
क्या कोई इसे करने के तरीके पर कोई सलाह दे सकता है?
धन्यवाद
क्षमा करें भाषा को नहीं पता। हालांकि डेटा संरचना प्रश्न की तरह लगता है। क्या यह एक बाइनरी पेड़ है? लेकिन एक वृक्ष के निशान की तरह लगता है, मुझे लगता है कि 2 एक संभावित जड़ है। और तुम्हारा मतलब है कि हर माता-पिता नोड रूट पर शुरू होने वाले धक्का में है?तो 2 -> 6 -> 8 एक शाखा होगी [2, 6, 8] सही के रूप में? –
यह पेड़ों पर पहली बार चौड़ाई की खोज के रूप में दिखता है। – chi
@chi यह वास्तव में है, लेकिन मुश्किल हिस्सा मार्ग का पता लगाने के लिए है। – jmasterx