Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

बाइनरी सर्च ट्री का उपयोग करके सॉर्ट करने के लिए पायथन प्रोग्राम

जब बाइनरी सर्च ट्री को सॉर्ट करने की आवश्यकता होती है, तो एक क्लास बनाई जाती है, और इसके अंदर विधियों को परिभाषित किया जाता है जो एक तत्व डालने और इनऑर्डर ट्रैवर्सल करने जैसे संचालन करते हैं।

नीचे उसी का एक प्रदर्शन है -

उदाहरण

class BinSearchTreeNode:
   def __init__(self, key):
      self.key = key
      self.left = None
      self.right = None
      self.parent = None
   def insert_elem(self, node):
      if self.key > node.key:
         if self.left is None:
            self.left = node
            node.parent = self
         else:
            self.left.insert_elem(node)
      elif self.key <= node.key:
         if self.right is None:
            self.right = node
            node.parent = self
         else:
            self.right.insert_elem(node)

   def inorder_traversal(self):
      if self.left is not None:
         self.left.inorder_traversal()
      print(self.key, end=' ')
      if self.right is not None:
         self.right.inorder_traversal()

class BinSearchTree:
   def __init__(self):
      self.root = None

   def inorder_traversal(self):
      if self.root is not None:
         self.root.inorder_traversal()

   def add_val(self, key):
      new_node = BinSearchTreeNode(key)
      if self.root is None:
         self.root = new_node
      else:
         self.root.insert_elem(new_node)

my_instance = BinSearchTree()

my_list = input('Enter the list of numbers... ').split()
my_list = [int(x) for x in my_list]
for x in my_list:
   my_instance.add_val(x)
print('Sorted list: ')
print(my_instance.inorder_traversal())

आउटपुट

Enter the list of numbers... 67 54 89 0 11 34 99
Sorted list:
0 11 34 54 67 89 99

स्पष्टीकरण

  • आवश्यक विशेषताओं के साथ 'BinSearchTreeNode' वर्ग बनाया गया है।

  • इसमें एक 'init' फ़ंक्शन होता है जिसका उपयोग 'बाएं', 'दाएं' और 'पैरेंट' नोड्स को 'कोई नहीं' असाइन करने के लिए किया जाता है।

  • 'insert_elem' नाम की एक और विधि परिभाषित की गई है जो पेड़ में नोड्स जोड़ने में मदद करती है।

  • 'इनऑर्डर_ट्रैवर्सल' नाम की एक अन्य विधि परिभाषित की गई है, जो पेड़ पर इनऑर्डर ट्रैवर्सल करने में मदद करती है।

  • 'BinSearchTree' नाम का एक और वर्ग परिभाषित किया गया है।

  • यह रूट को 'कोई नहीं' पर सेट करता है।

  • इसमें 'inorder_traversal' नाम की एक विधि है जो पेड़ पर इनऑर्डर ट्रैवर्सल करने में मदद करती है।

  • 'add_val' नाम की एक अन्य विधि परिभाषित की गई है जो पेड़ में नोड्स जोड़ने में मदद करती है।

  • 'BinSearchTree' का एक उदाहरण बनाया गया है।

  • नंबरों की सूची उपयोगकर्ता द्वारा ली जाती है।

  • इसका उपयोग करके एक पेड़ बनाया जाता है।

  • सूची को क्रमबद्ध किया जाता है, और इसके क्रम में ट्रैवर्सल किया जाता है।

  • प्रासंगिक आउटपुट कंसोल पर प्रदर्शित होता है।


  1. पायथन में बाइनरी ट्री का व्यास

    मान लीजिए हमारे पास एक बाइनरी ट्री है; हमें पेड़ के व्यास की लंबाई की गणना करनी है। बाइनरी ट्री का व्यास वास्तव में एक पेड़ में किन्हीं दो नोड्स के बीच सबसे लंबे पथ की लंबाई है। जरूरी नहीं कि यह रास्ता जड़ से ही गुजरे। तो अगर पेड़ नीचे जैसा है, तो व्यास 3 होगा क्योंकि पथ की लंबाई [4,2,1,3] या [5,2,1

  1. बाइनरी इंसर्शन सॉर्ट के लिए पायथन प्रोग्राम

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक सरणी दी गई है, हमें इसे बाइनरी इंसर्शन सॉर्ट की अवधारणा का उपयोग करके सॉर्ट करने की आवश्यकता है। यहां जैसा कि नाम से पता चलता है, हम बाइनरी सर्च की अवधारणा का उपयोग सम्मिलन सॉर्ट एल्गोरिदम के साथ करते हैं। आ

  1. यूनिटटेस्ट का उपयोग करते हुए पायथन प्रोग्राम में यूनिट टेस्टिंग

    इस लेख में, हम पायथन 3.x में उपलब्ध यूनिटेस्ट मॉड्यूल की मदद से सॉफ्टवेयर परीक्षण के मूल सिद्धांतों के बारे में जानेंगे। या जल्दी। यह स्वचालन, परीक्षण के लिए सेटअप और निकास कोड साझा करने और प्रत्येक ढांचे के लिए स्वतंत्र परीक्षण की अनुमति देता है। इकाई परीक्षण में, हम वस्तु उन्मुख अवधारणाओं की एक व