अॅरे आणि लिंक्ड सूच्यांमधील फरक

Anonim

सारणी विदारीकृत सूच्या

अरण्ये घटकांचा संग्रह संग्रहित करण्यासाठी सर्वात सामान्यपणे वापरले जाणारे डेटा संरचना आहेत. बहुतेक प्रोग्रामिंग भाषा अॅरे घोषित करणे आणि अॅरेमध्ये ऍक्सेस अॅलेंट सहजपणे देण्यासाठी पद्धती प्रदान करतात. लिंक्ड लिस्ट, अगदी तंतोतंत एकेरी-लिंक्ड लिस्ट, हे एक डाटा स्ट्रक्चर आहे ज्याचा वापर घटकांच्या संकलनासाठी केला जाऊ शकतो. हे नोड्सच्या क्रमाने बनलेले आहे आणि प्रत्येक नोड क्रमाने पुढील नोडचा संदर्भ देतात.

आकृती 1 मध्ये दर्शविले गेले आहे, विशेषत: ऍरेला मुल्ये घोषित करण्यासाठी आणि वितरित करण्यासाठी कोडचा एक भाग आहे. आकृती 2 मध्ये वर्णन करतो की अॅरे मेमरीमध्ये कसे दिसेल.

वरील अॅरे अॅरे परिभाषित करतात जो 5 इंटिजर संचित करू शकतो आणि 0 ते 4 च्या निर्देशांकाचा वापर करून त्यावर प्रवेश मिळवू शकतो. अॅरेचे एक महत्वाचे गुण म्हणजे संपूर्ण अॅरे स्मृतीचे एक ब्लॉक म्हणून वाटप केले जाते आणि प्रत्येक घटक त्याच्या स्वत: च्या जागेत अॅरे एकदा अॅरे परिभाषित झाल्यानंतर त्याचे आकार निश्चित झाले आहे. त्यामुळे जर आपण वेळेची संकलन करताना अॅरेच्या आकाराबद्दल निश्चित नसाल तर आपल्याला सुरक्षित बाजूला बसण्यासाठी मोठ्या प्रमाणातील ऍरे परिभाषित करावे लागेल. पण, बहुतेक वेळा आपण आपल्यासाठी वाटप केलेल्या घटकांपेक्षा कमी संख्येचा घटक वापरणार आहोत. म्हणूनच स्मृतीचा सिंहाचा बराचसा वाया जातो. दुसरीकडे "मोठ्या प्रमाणातील ऍरे" खरोखर मोठे नसल्यास, कार्यक्रम क्रॅश होईल.

लिंक्ड लिस्ट आपल्या स्मृतीत मेमरीच्या स्वतंत्र विभागात वेगवेगळे स्मरणशक्ती देते आणि एक सर्वसाधारण रचना या घटकांना साखळीत दुवे म्हणून जोडुन प्राप्त होते. आकृती 3 मध्ये दाखवल्याप्रमाणे लिंक्ड लिस्टमधील प्रत्येक घटकाची दोन क्षेत्रे आहेत. डेटा फिल्डमध्ये प्रत्यक्ष डेटा साठविला जातो आणि पुढील फील्डमध्ये साखळीमधील पुढील घटकाचा संदर्भ असतो. लिंक केलेल्या सूचीचा पहिला घटक जोडलेल्या सूचीचे प्रमुख म्हणून संग्रहित आहे.

डेटा पुढील

आकृती 3: लिंक्ड यादीचा घटक

आकृती 4 मध्ये तीन घटकांसह लिंक्ड लिस्ट दर्शविली आहे. प्रत्येक घटक त्याच्या डेटास आणि शेवटच्या एक स्टोअरस वगळून सर्व घटक पुढील घटकांचा संदर्भ संग्रहित करतो. त्याच्या पुढील फील्डमध्ये शेवटचे घटक एक शून्य मूल्य धारण करते. आपण आवश्यक घटक पूर्ण करेपर्यंत सूचीमधील कोणत्याही घटकास डोक्यावरुन सुरू करुन पुढचे पॉइंटर अनुसरण करून प्रवेश केला जाऊ शकतो.

जरी अॅरे आणि लिंक्ड लिस्ट यासारख्याच असतात त्याचप्रमाणे दोन्ही घटकांचा संग्रह संग्रहित करण्यासाठी वापरला जातो तरी ते त्यांच्या घटकांकरिता मेमरी वाटप करण्यासाठी वापरत असलेल्या धोरणामुळे फरक लावतात. अर्रे सर्व घटकांना मेमरीला एक ब्लॉक आणि अॅरेचे आकार म्हणून वाटप करतो रनटाइममध्ये निर्धारित करणे. हे अशा परिस्थितीत अकार्यक्षम करेल जे आपल्याला कंपाइल वेळेवर अॅरेचे आकार माहित नसतील. लिंक्ड लिस्ट स्वतंत्रपणे त्याच्या घटकांना मेमरी वाटप करत असल्याने, आपण संकलन काळातील यादीचा आकार माहित नसलेल्या परिस्थितिमध्ये हे खूप कार्यक्षम होईल.एका लिंक्ड लिस्टमधील घटक घोषित करणे आणि प्रवेश करणे हे त्याच्या निर्देशांकाद्वारे आपण अॅरेमधील घटक थेट कसे वापरतात याच्या तुलनेत सरळ नसावे.