दो मल्टी-वे पेड़, t1 और टी 2 के लिए, का उपयोग करके परिभाषितहास्केल में पेड़ के बीच एक उपट्री कैसे स्थानांतरित करें?
type Forest a = [Tree a]
data Tree a = Node {
rootLabel :: a,
subForest :: Forest a
}
कैसे मैं एक समारोह है कि t1 से एक सबट्री हटाने और t2 में दिए गए नोड पर से जोड़ दिया जाएगा लिख सकता है?
मैं कल्पना हस्ताक्षर की तरह
moveSubTree :: ((Tree x a) x (Tree x a)) -> (Tree x Tree)
कुछ ऐसा दिखाई देगा यानी यह एक पेड़ और माता पिता के नोड एक सबट्री को परिभाषित करने लग जाते हैं हटा दिया जाना चाहिए, और एक दूसरे पेड़ और नोड कि जिस पर मूल डालने के लिए के बिंदु को परिभाषित सबट्री।
निकालने के लिए अलग-अलग फ़ंक्शन और फिर आवश्यक होने पर उपट्री को जोड़ा जा सकता है।
'x' क्या है? इसके अलावा, हास्केल के पास कोई पॉइंटर्स नहीं है। एक पेड़ का मूल्य सिर्फ एक पेड़ है, कुछ भी नहीं। आपको पेड़ से उपट्री प्राप्त करने के लिए कुछ रास्ता प्रदान करना होगा, जैसे पथ (सूचकांक की एक सूची)। –
आपको "टी 2 में दी गई गहराई में इसे डालने" से अधिक विशिष्ट होना होगा - किसी भी गहराई पर पेड़ में कई बिंदु हो सकते हैं, जिसे आप इसे स्थानांतरित करना चाहते हैं? –
यह समझ में आता है - मुझे इसे "टी 2 में दिए गए नोड पर डालना चाहिए" होना चाहिए था। मैं इसे प्रतिबिंबित करने के लिए प्रश्न अपडेट करूंगा। –