यह परिचय के व्यायाम से एक सवाल एल्गोरिदम है, 3 edtion: (मैं जानता हूँ कि यह तुच्छ सवाल है, लेकिन मैं इस के आसपास मेरे सिर नहीं मिल सकता है।)परिचय एल्गोरिथ्म के लिए, व्यायाम 10.2-4
अध्याय 10, पृष्ठ 240:
10.2-4
लिखा के रूप में, सूची-खोज procedur में प्रत्येक पाश यात्रा ई दो परीक्षणों की आवश्यकता है:
x != L.nil
औरx.key != k
के लिए एक। दिखाएं कि कैसे प्रत्येक पुनरावृत्ति मेंx != L.nil
के परीक्षण को खत्म करें।
LIST-SEARCH(L, k)
x = L.nil.next
while x != L.nil and x.key != k
x = x.next
return x
L
परिपत्र, एक प्रहरी के साथ दोगुना लिंक्ड सूची है। (एक सेंटीनेल प्रारंभ में एक निश्चित स्थैतिक तत्व है, जो सीमा परिस्थितियों को सरल बनाने में मदद करता है। उदाहरण के लिए, मान लीजिए कि हम L
एक ऑब्जेक्ट L.nil
प्रदान करते हैं जो NIL
का प्रतिनिधित्व करता है लेकिन सूची में अन्य ऑब्जेक्ट्स के सभी गुण हैं।)
जब तक कि आप हमेशा खोज नहीं करते हैं, x != L.nil
को हटाने के लिए अनंत पुनरावृत्ति का कारण बनता है, जब तक कि k
खोज नहीं होता है।
आप इस अभिव्यक्ति को x != L.nil
अन्य अभिव्यक्तियों (जैसे सूची में तत्वों की गिनती) में बदल सकते हैं, लेकिन यह एक समाधान नहीं है, मुझे लगता है।
इस प्रश्न को हल करने में मुझे क्या कमी है?
नीचे वोट की व्याख्या करें। – mohit
क्या होगा यदि आप 'एल'आईएल की कुंजी अस्थायी रूप से 'k' पर सेट करते हैं? "एनआईएल" का प्रतिनिधित्व करने के अलावा, इसमें अन्य सभी वस्तुओं के अन्य गुण हैं, है ना? क्या कोई प्रतिबंध है जो कहता है कि आप ऐसा नहीं कर सकते? –
@ChronoKitsune मेरा मानना है कि यह सिर्फ एक टीज़र है, ऐसा करने के कोई महत्वपूर्ण फायदे (प्रदर्शन या पठनीयता) नहीं हैं। सूची के अंतिम बिंदुओं की पहचान करने के लिए ये प्रेषक परंपरागत रूप से मौजूद हैं। – mohit