एल्गोरिथ्म एक द्विआधारी पेड़ में सबसे छोटा शाखा की लंबाई वापस जाने के लिए

वोट
0

एक द्विआधारी पेड़ दो कार्य एल और आर ऐसी है कि एक नोड n के लिए, एल (एन) एन के बाईं बच्चे देने का उपयोग कर एन्कोड किया जा सकता, आर (एन) एन के अधिकार के बच्चे दे।

एक पेड़ की एक शाखा एक पत्ता को जड़ से एक रास्ता है, एक विशेष पत्ती को एक शाखा की लंबाई है कि पत्ती को जड़ से पथ पर आर्क्स की संख्या है।

MinBranch (एल, आर, एक्स) एक द्विआधारी पेड़ के साथ द्विआधारी पेड़ के लिए रूट नोड एक्स एक साथ एल और आर कार्यों द्वारा इनकोडिंग लेने के लिए एक सरल पुनरावर्ती एल्गोरिदम हो सकता है और द्विआधारी पेड़ की कम से कम शाखा रिटर्न करते हैं।

इस एल्गोरिथ्म के लिए स्यूडोकोड प्रदान करें।

03/08/2009 को 04:30
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


4 जवाब

वोट
4

दोनों शाखाओं को देखो। प्रत्येक में कम से कम पथ की लंबाई का पता लगाएं। छोटे के लिए एक जोड़े और यह कम से कम शाखा मानते हैं।

03/08/2009 को 04:31
का स्रोत उपयोगकर्ता

वोट
0
function recurseMin(n)
{
if r(n) is null and l(n) is null, return 1
if r(n) is not null, rightSum = recurseMin( r(n-1) )
if l(n) is not null, leftSum = recurseMin ( l(n-1) )
return 1 + min( leftSum, rightSum )
}
03/08/2009 को 04:34
का स्रोत उपयोगकर्ता

वोट
5

मैं तुम्हें कैसे प्राप्त करने के लिए पर प्राप्त जवाब है देखने लंबाई कम से कम शाखा के हैं, लेकिन अपने होमवर्क असाइनमेंट वास्तव में वापस जाने के लिए है शाखा शायद नोड्स की एक सूची के रूप में, अपने आप में। तो, यहाँ निष्पादन योग्य स्यूडोकोड (यानी, अजगर) वास्तव में शाखा वापस जाने के लिए, का उपयोग कर Noneअशक्त मतलब करने के लिए:

def MinBranch(l, r, x):
  if x is None: return []
  left_one = MinBranch(l, r, l(x))
  right_one = MinBranch(l, r, r(x))
  if len(left_one) < len(right_one):
    tail = left_one
  else:
    tail = right_one
  return [x] + tail
03/08/2009 को 04:48
का स्रोत उपयोगकर्ता

वोट
1

तुम भी हे (2 में पा सकते हैं आर ) जहां आर परिणाम है। उपयोगी अगर पेड़ बहुत असंतुलित या अनंत है। यह है <= हे (एन)।

आप पुनरावृत्ति-मजबूत बनाने डीएफएस के साथ ऐसा कर सकते हैं।

03/08/2009 को 13:51
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more