मैं उलझन में हूं कि कैसे ट्री कार्यान्वयन अंतरिक्ष बचाता है & अधिकांश कॉम्पैक्ट रूप में डेटा स्टोर करता है!ट्री अंतरिक्ष बचाता है, लेकिन कैसे?
यदि आप नीचे दिए गए पेड़ को देखते हैं। जब आप किसी भी नोड पर कोई चरित्र संग्रहीत करते हैं, तो आपको उस संदर्भ के स्टोर के लिए आवश्यक स्ट्रिंग के प्रत्येक वर्ण के लिए & पर संदर्भ संग्रहीत करने की आवश्यकता होती है। ठीक है जब हमने एक आम चरित्र पहुंचा तो हमने कुछ जगह बचाई लेकिन हमने उस चरित्र नोड के संदर्भ को संग्रहीत करने में और अधिक जगह खो दी।
तो क्या इस पेड़ को बनाए रखने के लिए बहुत सारे संरचनात्मक उपरि नहीं हैं? इसके बजाय यदि इसके स्थान पर एक वृक्ष मानचित्र का उपयोग किया गया था, तो एक शब्दकोश को लागू करने के लिए कहें, इससे बहुत अधिक जगह बचाई जा सकती है क्योंकि स्ट्रिंग को एक टुकड़े में रखा जाएगा, इसलिए संदर्भों को संग्रहीत करने में कोई जगह बर्बाद नहीं हुई है, है ना?
यदि कोई नोड 16 बाइट्स लेता है लेकिन 16 से अधिक तारों (जावा में 8) में पुन: उपयोग किया जाता है, तो यह स्थान बचाता है। फिर यह केवल एक सवाल है कि क्या आप बर्बाद कर रहे हैं उससे ज्यादा जगह बचाते हैं। यह मानते हुए कि आपके उदाहरण में नीली संख्या दोहराई गई गणना है, स्ट्रिंग्स की एक साधारण सरणी की तुलना में बचत बर्बाद जगह से बड़ी हो जाती है। हालांकि इस मामले में दोहराव की गणना के साथ पूर्ण तारों को स्टोर करना बेहतर होगा। – han