जावा असाइनमेंट के हिस्से के रूप में, मुझे एक इनपुट अंकगणितीय अभिव्यक्ति लेनी है और उसे बाइनरी पेड़ में स्टोर करना है।एक इंफिक्स अभिव्यक्ति (कोष्ठक के साथ) को बाइनरी पेड़ में परिवर्तित करना
मैंने उस हिस्से को छोड़कर असाइनमेंट के लिए आवश्यक सब कुछ किया है जहां मैंने अभिव्यक्ति की स्ट्रिंग में पढ़ा है और इसे बाइनरी पेड़ में संग्रहीत किया है।
मैंने बाइनरीट्री नामक एक कक्षा बनाई है। इसका एकमात्र क्षेत्र रूट नामक एक ट्रीनोड है। इस ट्रीनोड को बाइनरीट्री में एक आंतरिक क्लास के रूप में परिभाषित किया गया है। इसमें 3 फ़ील्ड, एक सामान्य डेटा फ़ील्ड है, और दो बच्चे (बाएं और दाएं) हैं जो बाइनरी ट्री टाइप करते हैं।
मैं एक बहुत ही मुश्किल समय एक अभिव्यक्ति में पढ़ने के लिए एक एल्गोरिथ्म को परिभाषित करने आ रही हैं जैसे
(5 * (2 + 3)^3)/2
और की तरह एक पेड़ में भंडारण यह
/
^ 2
* 3
5 +
2 3
क्या कोई एल्गोरिदम के साथ मदद कर सकता है?
पहले एक सरल समीकरण स्ट्रिंग का प्रयास करें: '1 + 2'। जब आप इसे प्राप्त करते हैं, तो करें: '1 + 2 * 3'। फिर भी अधिक जटिल: '1 * 2 + 3'। अंत में: '(1 + 2) * 3' –
क्या आप अलगाव के लिए स्पष्टीकरण चाहते हैं? – Tushar