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

Anonim

डेटा कसा संग्रहित केला जातो?

डेटा संग्रहण आणि पुनर्प्राप्तीसाठी येतो तेव्हा अॅरे सूची आणि लिंक्ड लिस्ट सामान्य शब्द आहेत. जरी बरेच स्टोरेज डिव्हाइसेस आहेत, तरी शेवटी ते स्टोरेज मेकॅनिझिट वर अवलंबून असतात. या दोन संचयन यंत्रणा आपला डेटा स्टोरेज साधनांमध्ये ठेवतात आणि जेव्हा आवश्यक असेल तेव्हा त्यांना पुनर्प्राप्त करते. ते त्यांच्या स्मृती मध्ये डेटा संचयित कसे ते पहा. ऍरे सूचीमध्ये अनुक्रमिक स्टोरेज वापरली जाते आणि डेटाच्या तुकडा एकानंतर दुसर्या संग्रहित केल्या जातात. कदाचित स्टोरेजचे हे एक सोपा प्रकार आहे - ते संभ्रम टाळते. होय, ऍरे सूची पुढील मेमरी स्थानावरून पुढील आयटम किंवा डेटा पुनर्प्राप्त करू शकतो; तथापि, तो लिंक्ड असलेल्या सूचीमध्ये पॉइन्टरच्या मदतीने संग्रहित केला जातो. संचयनासाठी येथे दोन मेमरीची आवश्यकता आहे- डेटासाठी एक, पॉइंटरसाठी दुसरा. एक पॉइंटर पुढील डेटाचे मेमरी लोकेशन देतो. आम्ही सहजपणे समजतो की लिंक्ड यादी डेटा क्रमवारीत कधीही संचयित करत नाही; त्याऐवजी, ते यादृच्छिक संचय यंत्रणा वापरते. स्मृती मध्ये डेटा स्थानांचा शोधण्यात मुख्य तत्व पॉइंटर आहेत.

डायनॅमिक अर्रे आणि लिंक्ड लिस्ट

आम्ही आधीपासून चर्चा केली आहे दोन्ही स्टोरेज यंत्रणा डेटा मध्ये ठेवले आणि आम्ही अॅरे सूची अंतर्गत स्टोरेज स्कीम एक संज्ञा 'डायनॅमिक अरे' देऊ शकता. ते फक्त डेटा तुकड्यांना दुसर्या नावापासून ठेवते - मग हे नाव - परंतु लिंक्ड यादी पुढील आयटमचा मागोवा घेण्यासाठी पॉइंटर्सच्या मदतीने अंतर्गत सूची वापरते. म्हणूनच, ते पुढील लिंक दर्शविण्यासाठी एका स्वतंत्र किंवा दुहेरी जोडलेल्या सूचीप्रमाणे, आंतरिक लिंक्ड यादी वापरते.

मेमरी वापर

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

आरंभिक अरे यादी आणि लिंक्ड यादीचा आकार

अॅरे सूचीसह, एक रिक्त सूचीसाठी 10 चे आकार आवश्यक आहे, परंतु लिंक्ड यादीसह, आम्हाला इतक्या मोठ्या जागेची आवश्यकता नाही आम्ही 0 च्या खाली असलेल्या रिकाम्या लिंक्ड यादी तयार करू शकतो. नंतर आम्ही आकारानुसार आकार वाढवू शकतो.

डेटा पुनर्प्राप्ती

अॅरे सूचीमध्ये डेटा पुनर्प्राप्ती ही सोपी आहे कारण ती अनुक्रमितपणे संग्रहित करते. हे सर्व प्रथम डेटा स्थान ओळखते; तेथून, उर्वरित स्थान मिळवण्यासाठी पुढील स्थान अनुक्रमाने प्रवेश केला जातो.हे पहिले डेटा पोझिशन + 'एन' सारखे गणन करते, जेथे 'एन' अॅरे सूचीतील डेटाचा क्रम आहे. लिंक्ड यादी म्हणजे प्रथम डेटा स्थान शोधण्यासाठी प्रारंभिक पॉइंटर, आणि तेथून त्यास पुढील डेटा स्थान शोधण्यासाठी प्रत्येक डेटाशी संबंद्ध निर्देशक संदर्भित करतो. पुनर्प्राप्ती प्रक्रिया प्रामुख्याने येथे पॉइंटर्सवर अवलंबून आहे आणि ते प्रभावीपणे आम्हाला पुढील डेटा स्थान दर्शविते.

डेटा समाप्ती

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

उलटा ट्रॅव्हर्सल

लिंक्ड लिस्टमुळे उतरत्या दिशानिर्देशकांच्या मदतीने उलट दिशेने येण्याची परवानगी मिळते. तथापि, आमच्याकडे अॅरे सूचीमध्ये अशी सुविधा नाही - रिवर्स ट्रॅव्हर्सल येथे एक समस्या बनते आहे.

वाक्यरचना

आम्हाला दोन्ही संचयन यंत्रांच्या जावा वाक्यरचना पाहा.

अर्रे सूची निर्मिती:

सूची सूची = नवीन अरेरेस्ट ();

ऍरे सूचीमध्ये वस्तू जोडणे:

अर्रेलिस्टवाद ("नाव 1") जोडा;

अर्रेलिस्टवाद जोडा ("name2");

हे असे परिणामस्वरुप अॅरे सूची कसे दिसेल - [नाव 1, नाव 2].

लिंक्ड सूची निर्मिती:

लिंक्ड लिस्टील्ड = नवीन जोडलेले यादी ();

लिंक्ड यादीवर ऑब्जेक्ट्स जोडणे:

लिंक्डलिस्टवाद जोडा ("name3");

लिंक्डलिस्टवाद जोडा ("name4");

असे परिणाम लिंक्ड यादी कशी दिसेल - [name3, name4].

मिळवा किंवा शोध ऑपरेशनसाठी कोणते चांगले आहे?

अॅरे सूचीमध्ये डेटा शोध घेण्यास O (1) वेळ लागते, तर लिंक्ड यादी n व्या डेटा शोधासाठी ओ आणि (एन) ला घेते म्हणून, कोणत्याही डेटा शोधसाठी अॅरेची यादी नेहमीच स्थिर वेळ वापरते, परंतु लिंक्ड सूचीमध्ये घेतलेली वेळ डेटाच्या स्थितीवर अवलंबून असते. म्हणून, मिळवा किंवा शोध ऑपरेशनसाठी अॅरे सूची नेहमीच चांगली निवड असते.

समाविष्ट करणे किंवा जोडणे ऑपरेशनसाठी कोणते चांगले आहे?

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

ऑपरेशन काढून टाकण्यासाठी कोणते चांगले आहे?

काढणे ऑपरेशन ऍरे सूची आणि लिंक्ड सूचीमध्ये बराच वेळ घेते. अॅरे सूचीमध्ये, हे ऑपरेशन डेटा हटविते आणि नंतर नवीन अॅरे तयार करण्यासाठी डेटाची स्थिती बदलते - हे (एन) वेळ घेते. लिंक केलेल्या सूचीमध्ये, हे ऑपरेशन विशिष्ट डेटाकडे सरकते आणि नवीन सूची तयार करण्यासाठी पॉइंटर पोझिशन्स बदलते. ट्रॅव्हर्सल आणि काढण्याची वेळ हे (एन) येथे तसेच आहे

वेगवान कोणते?

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

अॅरे सूची आणि लिंक्ड लिस्ट कधी वापरायची?

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

आता आपण टेबल स्वरुपमधील भेद पाहू.

एस. परिक्षेचे फरक
आरे लिस्ट लिंक्ड यादी
1 डेटा स्टोरेज फॅशन अनुक्रमिक डेटा संचयन वापरते गैर-अनुक्रमिक डेटा संचयन वापरते
2 < अंतर्गत संचय योजना अंतर्गत डायनॅमिक अर्रे ठेवते एक लिंक्ड यादी कायम राखते 3
मेमरी वापर डेटासाठी मेमरी स्पेसची आवश्यकता आहे डेटासाठी मेमरी स्पेसची आवश्यकता आहे सूचक < 4 आरंभिक यादीचा आकार
कमीतकमी 10 बाबींसाठी जागा आवश्यक आहे < जागेची आवश्यकता नाही आणि आम्ही आकार 0 ची रिक्त लिंक्ड सूची देखील तयार करू शकतो. 5 डेटा पुनर्प्राप्ती प्रथम डेटा पोझिशशन + 'एन' सारखा संगणित होतो, जेथे 'एन' अॅरे सूचीमधील डेटाचा क्रम आहे
आवश्यक डेटा आवश्यक नसल्यास पहिल्या किंवा शेवटच्या वेळेस ट्रॅव्हर्सल 6 < डेटा समाप्ती तारीख < शून्य मान हे चिन्हांकित करतात < नल पॉइंटर शेवटचे चिन्हांकित करते < 7 उलटे ट्रॅव्हर्सल ती परवानगी देत ​​नाही < उतरत्या क्रमाने)
8 यादी निर्मिती वाक्यरचने सूची आलिस्लिस्ट = नवीन अरे सूची (); लिंक्ड लिस्टीम = नवीन जोडलेले यादी ();
9 ऑब्जेक्ट्स जोडणे अर्रेलिस्टवाद ("नाव 1") जोडा; लिंक्डलिस्टवाद जोडा ("name3");
10 मिळवा किंवा शोधा ओ (1) वेळ घेतो आणि कार्यप्रदर्शनामध्ये चांगले आहे

वेळ (कामगिरीचा) घेतो आणि कार्यक्षमता डेटाच्या स्थितीवर अवलंबून असते

11 सर्व परिस्थिती अंतर्गत ओ (1) वेळ उपभोगत आहे

12

काढून टाकणे किंवा काढणे ओ (न) वेळ घेतो वेळ घेतो (एन) वेळ 13
केव्हा वापरायचे? जेव्हा बरेच सारे गेट किंवा सर्च ऑपरेशन समाविष्ट होतात; मेमरी उपलब्धता < सुरु असताना किंवा बरेचदा जेव्हा ऑपरेशन्स घाला किंवा नष्ट होतात तेव्हा देखील मेमरी उपलब्धता जास्त असली पाहिजे आणि मेमरी उपलब्धता सतत चालूच ठेवण्याची गरज नाही