2013-05-05 13 views
5

मेरे पास एक डेटा संरचना है जो एक प्रकार के हस्ताक्षर का प्रतिनिधित्व करती है, यह डेटा संरचना लाल रंग के रूप में पहली तस्वीर में एक वृक्ष उदाहरण है। मैं काला प्राप्त करना चाहता हूं और अब तक मुझे नारंगी एक (दूसरी तस्वीर) मिली है, जो कि प्रकार का पेड़ है लेकिन बाएं से जुड़ा हुआ है।पेड़ रिवाइटिंग

enter image description here

यहाँ नारंगी पेड़ मैं अब तक मिल गया है (नारंगी तीर का पालन करें)

enter image description here

मैं बहुत पेड़ मुद्रण और फिर एक साथ यह पार्स करने से इस समस्या का समाधान किया था है पार्सर संयोजक, लेकिन यह अक्षमता वांछित नहीं है। मुझे लगता है कि मेरे पास नारंगी पेड़ से काले रंग में परिवर्तित करने के लिए एक और एल्गोरिदम हो सकता है, लेकिन अगर बेहतर दो एल्गोरिदम लिखने के बजाय, मैं बेहतर होगा, मैं केवल एक ही लिख सकता हूं।

मैं इसे हास्केल के रूप में टैग करूंगा क्योंकि मैं इसके बारे में अपना समाधान लिख रहा हूं। मैं लाल पेड़ की तरह डेटा संरचना प्राप्त करने के लिए कोड प्रदान कर सकता हूं लेकिन मुझे लगता है कि यह केवल समाधान के प्रयास को जटिल करेगा ..

मैं जानना चाहता हूं कि इस एल्गोरिदम के नाम और/या नाम क्या है लाल पेड़ में ऑपरेटर की स्थिति है। क्या यह उपसर्ग है?

धन्यवाद।

+7

आपके पास क्या है '(ए -> बी) -> सी'। आपको जो मिला वह '(ए -> बी) -> सी' है। आप क्या चाहते हैं 'ए -> (बी -> सी) '। मुझे लगता है कि आप क्या परिणाम चाहते हैं यह तय करते समय आपने गलती की है। –

+0

@ डैनियल फिशर वास्तव में, मैंने अब परिणाम का फैसला करने का फैसला किया है जो मैं ढेर की मदद से चाहता था, मेरी गड़बड़ी के माध्यम से पढ़ने के लिए धन्यवाद –

उत्तर

4

रिकर्सन योजनाओं में एक नज़र डालें। वहाँ एक संबंधित सवाल है कि यहाँ लिंक का भार भी शामिल है:

Recursion schemes for dummies?

उस सवाल पर लिंक के सभी उत्कृष्ट हैं, लेकिन मैं विशेष रूप से (उस प्रश्न का मेरा उत्तर में लिंक) टिम विलियम्स की स्लाइड्स पर देखने चाहते हैं विभिन्न अलग-अलग पुनरावर्तन पैटर्न के ठोस कार्यान्वयन के लिए (जिनमें से अधिकांश वृक्ष संरचनाओं पर डेमो किए जाते हैं)।

संबंधित मुद्दे