सी का उपयोग कर बाइनरी खोजें ट्री inplace के लिए द्विआधारी पेड़ कन्वर्ट

वोट
0

किसी भी अतिरिक्त जगह बाइनरी खोजें tree.I को बाइनरी ट्री परिवर्तित का उपयोग किए बिना निम्नलिखित algo के साथ आया था, लेकिन यह काम नहीं करता।

BTtoBST (नोड * रूट)

जड़ 1. यदि शून्य वापसी है

2.else वर्तमान = जड़

3. अगर (current-> बाएं> वर्तमान) स्वैप (current-> छोड़ दिया है, वर्तमान)

4. यदि (current-> दाएं <वर्तमान) स्वैप (current-> सही, वर्तमान)

5.current = current-> बाएं

6 यदि वर्तमान 3 के लिए जाना! = शून्य बाकी 4 पर जाएं

7. वर्तमान = current-> सही

अग्रिम में धन्यवाद

पुनश्च: मैं इस लिंक देखा था, लेकिन ज्यादा मदद नहीं था !! कन्वर्ट बाइनरी ट्री -> BST (मूल वृक्ष आकार को बनाए रखने)

29/03/2011 को 05:49
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


2 जवाब

वोट
1

आप एक AVL ट्री में तरह subtrees सहित नोड्स (न केवल नोड सामग्री) स्वैप कर सकते हैं http://en.wikipedia.org/wiki/AVL_tree

बस के रूप में लंबे समय के रूप BST बाधाओं का उल्लंघन होता है, प्रत्येक स्वैप के बाद जड़ से गहरी पहले खोज को पुन: प्रारंभ गमागमन रखने के लिए।

29/03/2011 को 08:42
का स्रोत उपयोगकर्ता

वोट
0

एक के बाद आदेश (नीचे से ऊपर) पेड़ की ट्रेवर्सल, नोड्स दौरा कर रहे हैं लेने और उन्हें एक BST में डालने निष्पादित करें।

"किसी भी अतिरिक्त जगह के बिना" प्रत्यावर्तन रोकता है?

यदि नहीं, तो कुछ इस तरह:

# top level call passes null for bst
bt_to_bst (root, bst)
  # nothing to add to bst; just return it
  if null(root) -> return bst
  # if this is a leaf node, stick it into the BST
  if null(root->left) && null(root->right)
    return bst_insert(bst, root)
  # otherwise add all of left subtree into the bst and then the right tree
  bst = bt_to_bst (root->left, bst);
  return bt_to_bst (root->right, bst);

bt_to_bstएक फ़िल्टर आपरेशन है; यह एक मौजूदा BST लेता है और यह करने के लिए जोड़ा दिया नोड के साथ एक नया देता है।

करने के लिए एक पत्ता नोड जोड़ना bstसुरक्षित है क्योंकि हम इसे फिर से यात्रा कर कभी नहीं होगा, तो हम अपने ऊपर लिख सकता है leftऔर rightसंकेत दिए गए।

28/03/2012 को 18:49
का स्रोत उपयोगकर्ता

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