आप पाएंगे कि प्रोग्रामर के रूप में डेटा संरचनाओं का उपयोग करना एक बहुत ही सामान्य घटना है, इसलिए बाइनरी ट्री, स्टैक और क्यू जैसी बुनियादी डेटा संरचनाओं के साथ कुशल होना आपकी सफलता के लिए महत्वपूर्ण है।
लेकिन अगर आप अपने कौशल में सुधार करना चाहते हैं और भीड़ से अलग दिखना चाहते हैं, तो आपको उन्नत डेटा संरचनाओं से भी परिचित होना होगा।
उन्नत डेटा संरचनाएं डेटा विज्ञान का एक अनिवार्य घटक हैं, और वे अक्षम प्रबंधन को दूर करने और डेटा के बड़े सेट के लिए भंडारण प्रदान करने में मदद करते हैं। सॉफ्टवेयर इंजीनियर और डेटा वैज्ञानिक एल्गोरिदम और सॉफ्टवेयर डिजाइन करने के लिए लगातार उन्नत डेटा संरचनाओं का उपयोग करते हैं।
आगे पढ़ें क्योंकि हम उन उन्नत डेटा संरचनाओं पर चर्चा करते हैं जिनके बारे में प्रत्येक डेवलपर को पता होना चाहिए।
1. फाइबोनैचि ढेर
यदि आपने पहले से ही डेटा संरचनाओं को सीखने में कुछ समय लगाया है, तो आपको बाइनरी हीप्स से परिचित होना चाहिए। फाइबोनैचि ढेर बहुत समान हैं, और यह इस प्रकार है मिन-हीप या अधिकतम ढेर गुण। आप एक फाइबोनैचि ढेर को पेड़ों के संग्रह के रूप में सोच सकते हैं जहां न्यूनतम या अधिकतम मूल्य नोड हमेशा जड़ में होता है।
ढेर फाइबोनैचि संपत्ति को भी पूरा करता है जैसे कि एक नोड एन कम से कम होगा एफ (एन + 2) नोड्स। एक फाइबोनैचि ढेर के भीतर, प्रत्येक नोड की जड़ें एक साथ जुड़ी होती हैं, आमतौर पर एक गोलाकार डबल लिंक्ड सूची के माध्यम से। यह केवल O(1) समय में एक नोड को हटाना और दो सूचियों को जोड़ना संभव बनाता है।
सम्बंधित: कतारों और प्राथमिकता वाली कतारों को समझने के लिए एक शुरुआती मार्गदर्शिका
फाइबोनैचि ढेर द्विआधारी और द्विपद ढेर की तुलना में बहुत अधिक लचीले होते हैं, जो उन्हें अनुप्रयोगों की एक विस्तृत श्रृंखला में उपयोगी बनाते हैं। एल्गोरिदम के चलने के समय में उल्लेखनीय रूप से सुधार करने के लिए उन्हें आमतौर पर डिजस्ट्रा के एल्गोरिदम में प्राथमिकता कतार के रूप में उपयोग किया जाता है।
2. एवीएल ट्री
एवीएल (एडेलसन-वेल्स्की और लैंडिस) पेड़ स्व-संतुलन द्विआधारी खोज पेड़ हैं। मानक बाइनरी सर्च ट्री विषम हो सकते हैं और उनमें O(n) की सबसे खराब स्थिति होती है, जिससे वे वास्तविक दुनिया के अनुप्रयोगों के लिए अक्षम हो जाते हैं। संतुलन संपत्ति का उल्लंघन होने पर स्व-संतुलन वाले पेड़ स्वचालित रूप से अपनी संरचना बदलते हैं।
AVL ट्री में, प्रत्येक नोड में एक अतिरिक्त विशेषता होती है जिसमें उसका संतुलन कारक होता है। बैलेंस फ़ैक्टर उस नोड पर दाएँ सबट्री से बाएँ सबट्री की ऊँचाई घटाकर प्राप्त किया गया मान है। AVL ट्री की सेल्फ-बैलेंसिंग प्रॉपर्टी के लिए बैलेंस फैक्टर हमेशा -1, 0, या 1 होना चाहिए।
यदि सेल्फ-बैलेंसिंग प्रॉपर्टी (बैलेंस फैक्टर) का उल्लंघन होता है, तो AVL ट्री बैलेंस फैक्टर को बनाए रखने के लिए अपने नोड्स को घुमाता है। एक AVL ट्री चार मुख्य घुमावों का उपयोग करता है - दायाँ घुमाना, बाएँ घुमाना, बाएँ-दाएँ घुमाना और दाएँ-बाएँ घुमाना।
AVL ट्री की सेल्फ-बैलेंसिंग संपत्ति इसकी सबसे खराब स्थिति समय जटिलता को केवल O(logn) में सुधार देती है, जो कि बाइनरी सर्च ट्री के प्रदर्शन की तुलना में काफी अधिक कुशल है।
3.लाल-काले पेड़
रेड-ब्लैक ट्री एक और सेल्फ-बैलेंसिंग बाइनरी सर्च ट्री है जो अपनी सेल्फ-बैलेंसिंग प्रॉपर्टी के रूप में एक अतिरिक्त बिट का उपयोग करता है। बिट को आमतौर पर लाल या काला कहा जाता है, इसलिए इसका नाम लाल-काले पेड़ है।
रेड-ब्लैक में प्रत्येक नोड या तो लाल या काला होता है, लेकिन रूट नोड हमेशा काला होना चाहिए। दो आसन्न लाल नोड्स नहीं हो सकते हैं, और सभी लीफ नोड्स काले होने चाहिए। इन नियमों का उपयोग पेड़ की आत्म-संतुलन संपत्ति को संरक्षित करने के लिए किया जाता है।
सम्बंधित: एल्गोरिदम हर प्रोग्रामर को पता होना चाहिए
बाइनरी सर्च ट्री के विपरीत, रेड-ब्लैक ट्री में लगभग O(logn) दक्षता होती है, जो उन्हें कहीं अधिक कुशल बनाती है। हालांकि, एक निश्चित आत्म-संतुलन संपत्ति के कारण एवीएल पेड़ अधिक संतुलित होते हैं।
अपनी डेटा संरचनाओं में सुधार करें
उन्नत डेटा संरचनाओं को जानने से नौकरी के साक्षात्कार में बड़ा अंतर आ सकता है और यह वह कारक हो सकता है जो आपको प्रतिस्पर्धा से अलग करता है। अन्य उन्नत डेटा संरचनाएं जिन्हें आपको देखना चाहिए, उनमें एन-ट्री, ग्राफ़ और डिसजॉइंट सेट शामिल हैं।
किसी दिए गए परिदृश्य के लिए एक आदर्श डेटा संरचना की पहचान करना एक अच्छे प्रोग्रामर को महान बनाने का एक हिस्सा है।
सॉफ्टवेयर इंजीनियरिंग में डेटा संरचनाएं एक प्रमुख हैं। यहां कुछ महत्वपूर्ण डेटा संरचनाएं दी गई हैं जिन्हें हर प्रोग्रामर को पता होना चाहिए।
आगे पढ़िए
- प्रोग्रामिंग
- प्रोग्रामिंग
- डेटा विश्लेषण
फहद MakeUseOf में लेखक हैं और वर्तमान में कंप्यूटर साइंस में पढ़ाई कर रहे हैं। एक उत्साही तकनीकी-लेखक के रूप में वह सुनिश्चित करता है कि वह नवीनतम तकनीक से अपडेट रहे। वह खुद को विशेष रूप से फुटबॉल और प्रौद्योगिकी में रुचि रखता है।
हमारे न्यूज़लेटर की सदस्यता लें
तकनीकी युक्तियों, समीक्षाओं, निःशुल्क ई-पुस्तकों और अनन्य सौदों के लिए हमारे न्यूज़लेटर से जुड़ें!
सब्सक्राइब करने के लिए यहां क्लिक करें