मैं पूरी तरह से के माध्यम से इस बारे में नहीं सोचा है, लेकिन विशिष्ट गहराई का एक पेड़ होने का एक तरीका है कि उन्हें डालने से पहले अपने तत्वों को सॉर्ट करने के लिए है: तो एक द्विआधारी खोज वृक्ष में N
तत्वों डालने एक पेड़ का उत्पादन करेगा छँटाई अर्थात गहराई N
।
आप में सक्षम हो सकता है:
- क्रमबद्ध अपने तत्वों
- सम्मिलित एक विशिष्ट
K=4
उनमें से इस तरह से कि में शेष तत्व सम्मिलित K
- गहराई का एक पेड़ का निर्माण करने के पेड़ गहरा नहीं होता है।
(बेशक, चुनने जो K
तत्वों के साथ शुरू करने के लिए और शेष तत्व डालने के लिए एक रणनीति मुश्किल हिस्सा है - लेकिन शायद यह होगा एक शुरुआत)
संपादित : मुझे लगता है कि एक सामान्य समाधान संभव है, मानते हैं कि K
काफी बड़ा है। कैसे इस बारे में:
- को देखते हुए
10, 7, 16, 12, 5, 11, 2, 20, 1, 14
- क्रमबद्ध अपने तत्वों:
1, 2, 5, 7, 10, 11, 12, 14, 16, 20
- सम्मिलित पिछले K = 4 तत्वों, तो पिछले K-1, तो K-2, और इतने पर, 1 करने के लिए नीचे ।
उदाहरण के लिए, छंटाई और डालने के बाद पिछले 4:
12
\
14
\
16
\
20
... तो डालने के बाद पिछले 3:
12
/\
7 14
\ \
10 16
\ \
11 20
... तो पिछले 2 के बाद:
12
/\
7 14
/\ \
2 10 16
\ \ \
5 11 20
... और अंत में, पिछले तत्व डालने के बाद:
12
/\
7 14
/\ \
2 10 16
/\ \ \
1 5 11 20
... आपको ऊंचाई के बीएसटी के साथ छोड़ दिया गया है = 4।
ध्यान दें कि यह दृष्टिकोण केवल तभी काम करेगा जब K
काफी बड़ा होगा - विशेष रूप से, जब K(K+1)/2 >= N
।
स्रोत
2012-05-11 16:55:11
के संभावित डुप्लिकेट [संतुलन एक बाइनरी ट्री (AVL)] (http://stackoverflow.com/questions/133610/balancing-a-binary-tree-avl) – Flexo
आप [संतुलन बाइनरी ट्री] की जरूरत है (http://en.wikipedia.org/wiki/Self-balancing_binary_search_tree) –
मैं एक संतुलित वृक्ष का निर्माण नहीं कर रहा हूं, ऐसे में पूर्णांक की ऑर्डरिंग निर्धारित करें जो 4 की ऊंचाई प्राप्त करेगी। – Tobi3