यह कहकर कि 'सर्कुलर सूचियों' का समर्थन करता है यह थोड़ा सा है। आप लिस्प में सभी प्रकार के परिपत्र डेटा संरचनाएं बना सकते हैं। कई प्रोग्रामिंग भाषाओं की तरह। इस संबंध में लिस्प के बारे में बहुत खास नहीं है। अपने ठेठ 'एल्गोरिदम और डेटास्ट्रक्चर' पुस्तक को लें और किसी भी परिपत्र डेटा संरचना को लागू करें: ग्राफ, अंगूठियां, ... कुछ लिस्पस ऑफ़र क्या है कि कोई सर्कुलर डेटा संरचनाओं को प्रिंट और पढ़ सकता है। इसका समर्थन इसलिए है क्योंकि ठेठ लिस्प प्रोग्रामिंग डोमेन सर्कुलर डेटा स्ट्रक्चर सामान्य हैं: पार्सर्स, रिलेशनल एक्सप्रेशन, शब्दों के नेटवर्क, योजनाएं, ...
यह काफी आम है कि डेटा संरचनाओं में चक्र होते हैं। वास्तविक 'परिपत्र सूचियां' अक्सर उपयोग नहीं की जाती हैं। उदाहरण के लिए एक कार्य शेड्यूलर के बारे में सोचें जो एक कार्य चलाता है और कुछ समय बाद अगली बार स्विच करता है। कार्यों की सूची परिपत्र हो सकती है ताकि 'अंतिम' कार्य के बाद शेड्यूलर 'पहला' कार्य लेता है। असल में कोई 'आखिरी' और 'पहला' नहीं है - यह केवल कार्यों की एक गोलाकार सूची है और शेड्यूलर बिना अंत के उन्हें चलाता है। आपके पास विंडो सिस्टम में विंडो की एक सूची भी हो सकती है और कुछ कुंजी कमांड के साथ आप अगली विंडो पर स्विच करेंगे। खिड़कियों की सूची परिपत्र हो सकता है।
सूचियां अगली ऑपरेशन की आवश्यकता होती है और डेटा संरचना का आकार अग्रिम में अज्ञात है। आप हमेशा सूची में एक और नोड जोड़ सकते हैं या किसी सूची से नोड को हटा सकते हैं। सूचियों के सामान्य कार्यान्वयन अगले नोड को प्राप्त करते हैं और एक आइटम को सस्ते/जोड़ते हैं। एक सरणी से अगला तत्व प्राप्त करना अपेक्षाकृत सरल है (सूचकांक में वृद्धि, अंतिम सूचकांक में पहली अनुक्रमणिका में जाना), लेकिन तत्वों को जोड़ना/निकालना आम तौर पर अधिक महंगा शिफ्ट संचालन की आवश्यकता होती है।
चूंकि सर्कुलर डेटा संरचनाओं को बनाना आसान है, इसलिए कोई भी इंटरैक्टिव प्रोग्रामिंग के दौरान ऐसा कर सकता है। यदि आप बिल्ट-इन रूटीन के साथ एक गोलाकार डेटा संरचना मुद्रित करते हैं तो प्रिंटर इसे संभाल सकता है, तो यह एक अच्छा विचार होगा, अन्यथा यह हमेशा के लिए एक परिपत्र सूची मुद्रित कर सकता है ...
स्रोत
2010-03-07 09:33:51
मैंने अब सीखा है कि योजना के पर्यावरण मॉडल को (बहुत मजबूत?) परिपत्र सूचियों की आवश्यकता होती है: एक पर्यावरण 'बिंदु' में वापस दी गई प्रक्रिया - इसके परिदृश्य सूची - एक परिपत्र सूची। – philcolbourn