डायनेमिक ट्री नेटवर्क फ़्लो, डायनेमिक ग्राफ़, कॉम्बीनेटरियल प्रॉब्लम्स ("डायनेमिक ट्रीज़ इन प्रैक्टिस" टारजन और वर्नेक) और हाल ही में डिक्शनरी डिक्शनरी ("अ सिंपल मर्किम डिक्शनरी" एडम कार्मार्ज़्ज़ द्वारा) को हल करने में महत्वपूर्ण भूमिका निभाते हैं।
डायनेमिक ट्रीज़ से मैं 1983 में स्लेटोर एंड टार्जन के पेपर "डायनेमिक ट्रीज़ के लिए एक डेटा स्ट्रक्चर" में बताई गई परिभाषा का उल्लेख करता हूं। कुछ कार्य कार्यात्मक प्रोग्रामिंग रिसर्च क्षेत्र के भीतर से प्रकाशित हुए हैं।
- एडवर्ड केमट ने एसटी पेड़ों के एक संस्करण को ज्यादातर सी ++ समकक्ष के अनुवाद के रूप में लागू किया, लिंक-कट पेड़ों को देखें ।
- क्रिस ओकासाकी ने अपनी प्रसिद्ध पुस्तक "विशुद्ध रूप से कार्यात्मक डेटा संरचनाओं" में सेले पेड़ों का सीमित कार्यान्वयन लिखा।
- राल्फ हिंज़ और रॉस पैटर्सन ने एक कार्यात्मक डेटा संरचना पेश की, जिसे 2-3 उंगली के पेड़ कहा जाता है, लेकिन गतिशील पेड़ों की मूल परिभाषा से कुछ अलग उद्देश्य के साथ।
गतिशील पेड़ों के कार्यान्वयन (और शायद प्रदर्शन) को तीन दृष्टिकोणों के अनुसार विभाजित किया गया है:
- रैखिककरण, जहां ईटी पेड़ (यूलर टूर) एक महान भूमिका निभाते हैं। विशुद्ध रूप से कार्यात्मक अध्ययन नहीं मिला।
- पथ-अपघटन, जहां एसटी पेड़ प्रमुख हैं, बस केमेट का संस्करण मिला।
- ट्री संकुचन, जहां शीर्ष पेड़, टोपोलॉजी पेड़ और आरसी पेड़ खिलाड़ी हैं। विशुद्ध रूप से कार्यात्मक अध्ययन नहीं मिला।
विशुद्ध रूप से कार्यात्मक विश्लेषण और कार्यान्वयन Splay, AVL, लाल-काले पेड़ पर पाया जा सकता है, लेकिन वे गतिशील पेड़ नहीं हैं। पूर्व को छाया माना जाता है (जिसे आभासी या सहायक भी कहा जाता है) उत्तरार्द्ध की डेटा संरचना।
तो, मेरा सवाल है:
कार्यात्मक प्रोग्रामिंग अनुसंधान समुदाय के गतिशील पेड़ डेटा संरचना में भाग नहीं लेने के कारण (कमियां, कमजोरियां) क्या हैं?