यहाँ रूसी से हिंदी में अनुवादित प्रोग्रामिंग कार्य का पाठ दिया गया है: विरासत और बहुरूपता के साथ बाइनरी सर्च ट्री का नेटवर्क

Python Hard classes

कार्य «यहाँ रूसी से हिंदी में अनुवादित प्रोग्रामिंग कार्य का पाठ दिया गया है: विरासत और बहुरूपता के साथ बाइनरी सर्च ट्री का नेटवर्क»

बाइनरी सर्च ट्री (BST) के नोड के लिए `Node` क्लास को `insert`, `search`, `delete` विधियों के साथ लागू करें। एक `BST` क्लास बनाएं जो रूट को संग्रहीत करती है और इसमें `insert` (मान जोड़ना), `search` (मान खोजना, True/False लौटाता है), `delete` (मान हटाना), और `get_height` (पेड़ की ऊंचाई) विधियाँ शामिल हों। फिर एक `AVLTree` क्लास बनाएं जो `BST` से विरासत प्राप्त करती है, और संतुलन बनाए रखने के लिए (रोटेशन के साथ) `insert` और `delete` को ओवरराइड करती है। इनपुट डेटा: कमांड का अनुक्रम। कमांड: "insert x" x जोड़ें, "delete x" x हटाएं (यदि मौजूद है), "search x" "found" या "not found" आउटपुट करें, "height" पेड़ की ऊंचाई आउटपुट करें। `AVLTree` के लिए प्रत्येक इन्सर्ट/डिलीट के बाद संतुलन की जाँच की जाती है (उपपेड़ों की ऊंचाई का अंतर <= 1) और उचित रोटेशन किया जाता है। सीमाएँ: -10^9 <= x <= 10^9, कमांड की संख्या 10^5 तक।

इनपुट प्रारूप

पहली पंक्ति: एक पूर्णांक n (1 <= n <= 10^5) — कमांड की संख्या। फिर n पंक्तियाँ, प्रत्येक में एक कमांड है: insert x, delete x, search x या height।

आउटपुट प्रारूप

प्रत्येक search कमांड के लिए, एक अलग लाइन में "found" या "not found" प्रिंट करें। height कमांड के लिए, एक पूर्णांक प्रिंट करें — पेड़ की ऊँचाई (खाली पेड़ की ऊँचाई = 0)।

उदाहरण

उदाहरण 1

इनपुट
3 1 2 -3 4 -1 -2 5 0 3
आउटपुट

उदाहरण 2

इनपुट
2 0 0 0 2 -2 2 -2
आउटपुट
main.py