जब बाइनरी सर्च ट्री को सॉर्ट करने की आवश्यकता होती है, तो एक क्लास बनाई जाती है, और इसके अंदर विधियों को परिभाषित किया जाता है जो एक तत्व डालने और इनऑर्डर ट्रैवर्सल करने जैसे संचालन करते हैं।
नीचे उसी का एक प्रदर्शन है -
उदाहरण
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' का एक उदाहरण बनाया गया है।
-
नंबरों की सूची उपयोगकर्ता द्वारा ली जाती है।
-
इसका उपयोग करके एक पेड़ बनाया जाता है।
-
सूची को क्रमबद्ध किया जाता है, और इसके क्रम में ट्रैवर्सल किया जाता है।
-
प्रासंगिक आउटपुट कंसोल पर प्रदर्शित होता है।