मैं चाहता हूं कि आप मुझे इस अभ्यास को कॉर्मन की किताब से साबित करने के लिए एक संकेत दें: "साबित करें कि कोई भी नोड जो हम ऊंचाई-एच बाइनरी खोज पेड़ में शुरू करते हैं, के ट्री-सफलताकर्ता को लगातार कॉल ओ (के + एच) समय ले लो। "मैं बाइनरी खोज पेड़ पर इस ऑपरेशन को कैसे साबित कर सकता हूं?
5
A
उत्तर
6
- Let शुरू करने नोड हो
x
औरz
वृक्ष-उत्तराधिकारी कोk
लगातार कॉल के बाद समाप्त होने नोड हो। p
x
औरz
समेत सरल पथ बनें।y
x
औरz
के सामान्य पूर्वजों कोp
विज़िट करने दें।p
की लंबाई2h
पर है, जोO(h)
है।output
उन तत्वों को बनें जो उनके मानx.key
औरz.key
समेत शामिल हैं।output
का आकारO(k)
है।- वृक्ष-उत्तराधिकारी को
k
लगातार कॉल, नोड्सp
में हैं के निष्पादन में दौरा कर रहे हैं, और नोड्सx
,y
औरz
, अलावा अगरp
में एक नोड के एक उप पेड़ तो सभी का दौरा किया है इसके तत्वoutput
में हैं। - तो चलने का समय
O(h+k)
है।
3
संकेत: एक छोटा सा उदाहरण तैयार करें, परिणाम देखें, कारण को निकालने का प्रयास करें।
आरंभ करने के लिए, यहां कुछ चीजों पर विचार करना है।
एक निश्चित नोड से शुरू करें, ट्री-सक्सेसर को सफलतापूर्वक कॉल आंशिक वृक्ष चलने का प्रयास करता है। कितने (कम से कम और अधिकतर) नोड्स इस यात्रा पर जाते हैं? (संकेत: कुंजी (एक्स) के बारे में सोचें)। ध्यान रखें कि किनारे पर दो बार दौरा किया जाता है (क्यों?)।
अंतिम संकेत: परिणाम O(2h+k)
है।
+1
अधिकांश ट्राइस पर एक नोड का दौरा किया जाता है। –
'ट्री-सफलताकर्ता के लिए लगातार कॉल के निष्पादन में, पी में नोड्स का दौरा किया जाता है, और नोड्स एक्स, वाई और जेड के अलावा, क्या आप कृपया यहां बता सकते हैं कि 'y' क्या है? –
मैंने उत्तर में 'y' जोड़ा। –