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

द्विपद वृक्ष को लागू करने के लिए पायथन कार्यक्रम

जब पायथन में द्विपद वृक्ष को लागू करने की आवश्यकता होती है, तो वस्तु उन्मुख पद्धति का उपयोग किया जाता है। यहां, एक वर्ग परिभाषित किया गया है, और विशेषताओं को परिभाषित किया गया है। कार्यों को उस वर्ग के भीतर परिभाषित किया जाता है जो कुछ संचालन करता है। कक्षा का एक उदाहरण बनाया जाता है, और फ़ंक्शन का उपयोग कैलकुलेटर संचालन करने के लिए किया जाता है।

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

उदाहरण

class binomial_tree:
   def __init__(self, key):
      self.key = key
      self.children = []
      self.order = 0
   def add_at_end(self, t):
      self.children.append(t)
      self.order = self.order + 1
my_tree = []
print('Menu')
print('create <key>')
print('combine <index1> <index2>')
print('exit')
while True:
   option = input('What do you wish like to do? ').split()
   operation = option[0].strip().lower()
   if operation == 'create':
      key = int(option[1])
      b_tree = binomial_tree(key)
      my_tree.append(b_tree)
      print('Binomial tree has been created.')
   elif operation == 'combine':
      index_1 = int(option[1])
      index_2 = int(option[2])
      if my_tree[index_1].order == my_tree[index_2].order:
         my_tree[index_1].add_at_end(my_tree[index_2])
         del my_tree[index_2]
         print('Binomial trees have been combined.')
      else:
         print('Order of trees need to be the same to combine them.')
   elif operation == 'exit':
      print("Exit")
      break
   print('{:>8}{:>12}{:>8}'.format('Index', 'Root key', 'Order'))
   for index, t in enumerate(my_tree):
print('{:8d}{:12d}{:8d}'.format(index, t.key, t.order))

आउटपुट

Menu
create <key>
combine <index1> <index2>
exit
What do you wish like to do? create 7
Binomial tree has been created.
Index Root key Order
0 7 0
What do you wish like to do? create 11
Binomial tree has been created.
Index Root key Order
0 7 0
1 11 0
What do you wish like to do? create 4
Binomial tree has been created.
Index Root key Order
   0    7    0
   1    11    0
   2    4    0
What do you wish like to do? combine 0 1
Binomial trees have been combined.
Index Root key Order
   0    7    1
   1    4    0
What do you wish like to do? exit
Exit

स्पष्टीकरण

  • 'binomial_tree' नाम का एक वर्ग परिभाषित किया गया है।
  • इसमें पेड़ के अंत में तत्वों को जोड़ने की एक विधि है।
  • एक खाली सूची बनाई गई है।
  • विकल्पों के आधार पर, उपयोगकर्ता एक विकल्प चुनता है।
  • यदि वे एक कुंजी बनाना चुनते हैं, तो कक्षा का एक उदाहरण बनाया जाता है, और एक द्विपद वृक्ष बनाया जाता है।
  • सूचकांक, मूल मान और क्रम की भी गणना की जाती है।
  • यदि सूचकांकों को संयोजित करने की आवश्यकता है, तो दूसरा विकल्प चुना जाता है, और नोड्स के सूचकांक मूल्यों को भी शामिल किया जाता है जिन्हें संयोजित करने की आवश्यकता होती है।
  • यह डेटा को जोड़ता है, और इसे प्रदर्शित करता है।

  1. AVL ट्री को लागू करने के लिए C++ प्रोग्राम

    AVL ट्री एक सेल्फ-बैलेंसिंग बाइनरी सर्च ट्री है जहां सभी नोड्स के लिए बाएं और दाएं सबट्री की ऊंचाई के बीच का अंतर एक से अधिक नहीं हो सकता है। ट्री रोटेशन एक ऐसा ऑपरेशन है जो AVL ट्री पर तत्वों के क्रम में हस्तक्षेप किए बिना संरचना को बदलता है। यह पेड़ में एक नोड को ऊपर और एक नोड को नीचे ले जाता है।

  1. पायथन में n-ary पेड़ की प्रतिलिपि बनाने का कार्यक्रम

    मान लीजिए, हमें एक एन-आर्य वृक्ष प्रदान किया गया है जिसकी जड़ हमें जड़ दी गई है। हमें पूर्ण एन-आरी बाइनरी ट्री की एक प्रति बनानी होगी और दोनों पेड़ों का प्रीऑर्डर ट्रैवर्सल करना होगा। कॉपी किए गए पेड़ को दूसरे रूट नोड का उपयोग करके संग्रहीत किया जाना है। पेड़ की नोड संरचना नीचे दी गई है - Node: &nbs

  1. किसी दिए गए एक्सप्रेशन के एक्सप्रेशन ट्री के निर्माण के लिए पायथन प्रोग्राम

    एक्सप्रेशन ट्री वे होते हैं जिनमें लीफ नोड्स के संचालन के लिए मान होते हैं, और आंतरिक नोड्स में वह ऑपरेटर होता है जिस पर लीफ नोड का प्रदर्शन किया जाएगा। उदाहरण:4 + ((7 + 9) * 2) एक एक्सप्रेशन ट्री होगा जैसे - इस समस्या को हल करने का तरीका किसी दिए गए एक्सप्रेशन के लिए एक्सप्रेशन ट्री बनाने के ल