कैसे आप हे (1) अतिरिक्त स्थान के साथ बाइनरी खोजें ट्री को बाइनरी ट्री में बदल सकते हैं?
द्विआधारी खोज वृक्ष को बाइनरी पेड़ (बीएसटी)
एक आदेश दिया द्विआधारी खोज वृक्ष में एक अव्यवस्थित द्विआधारी पेड़ परिवर्तित मामूली बात है, लेकिन थोड़ा और अधिक मुश्किल तेजी से करने के लिए।
यहाँ एक अनुभवहीन कार्यान्वयन आपके मानदंड को पूरा करना चाहिए है, मैं लेने के लिए, बस समग्र एल्गोरिथ्म वास्तविक चरणों का वर्णन नहीं होंगे।
- अपने मौजूदा पेड़ से एक यादृच्छिक पत्ती नोड पकड़ो
- अपने मौजूदा पेड़ से पत्ता नोड अनलिंक करें
- नोड अपने नए द्विआधारी खोज पेड़ की जड़ बनाओ
- अपने मौजूदा पेड़ से एक और यादृच्छिक पत्ती नोड पकड़ो
- अपने मौजूदा पेड़ से उस नोड अनलिंक करें
- के लिए सही जगह का पता लगाएं, और नोड लिंक करें, अपने नए द्विआधारी खोज वृक्ष में
- मूल वृक्ष जब तक दोहराएँ कदम 4-6 रिक्त है
आप पत्ती नोड आप अनलिंक करने कर रहे हैं की मूल की तरह, सिर्फ कुछ चर की आवश्यकता होती है चाहिए (जब तक नोड्स अभिभावक संबंध हैं), नए पेड़ की जड़ नोड, और अस्थायी चर के एक जोड़े, सभी अपने ओ के भीतर (1 ) अंतरिक्ष मापदंड।
यह एक इष्टतम द्विआधारी खोज वृक्ष का उत्पादन नहीं होगा। उसके लिए आपको या तो उन्हें जोड़ने, और उन्हें सही क्रम में जोड़ने से पहले नोड्स को सॉर्ट, या एक लाल-काले पेड़ या एक टेढ़ा पेड़ की तरह एक संतुलन द्विआधारी खोज पेड़ का उपयोग, की जरूरत है।
एक दोगुना जुड़ा हुआ सूची- हे (एन) में inplace किया जा सकता है के लिए बाइनरी ट्री कन्वर्ट तब तरह यह प्रकार विलय, सूची एक पेड़ से वापस कन्वर्ट nlogn का उपयोग कर - हे (एन)
सरल nlogn समाधान।













