અરે સૂચિ અને લિંક કરેલ સૂચિ વચ્ચેના તફાવત

Anonim

ડેટા કેવી રીતે સંગ્રહિત થાય છે?

ડેટા સ્ટોરેજ અને પુનઃપ્રાપ્તિની વાત આવે ત્યારે અરે યાદી અને લિંક્ડ સૂચિ સામાન્ય રૂપે છે. ભલે સંગ્રહસ્થાન ઘણાં બધાં છે, આખરે, તેઓ સ્ટોરેજ મિકેનિઝમ પર આધાર રાખે છે. આ બે સ્ટોરેજ પદ્ધતિઓ તમારા ડેટાને સ્ટોરેજ ડિવાઇસમાં મુકતા હોય છે અને જ્યારે જરૂરી હોય ત્યારે તેમને પુનઃ પ્રાપ્ત કરે છે. ચાલો જોઈએ કે કેવી રીતે તેઓ તેમની મેમરીમાં ડેટા સંગ્રહિત કરે છે. અરે સૂચિ અનુક્રમિક સ્ટોરેજનો ઉપયોગ કરે છે અને ડેટાના ટુકડાને એક પછી બીજામાં સંગ્રહિત કરવામાં આવે છે. આ સંભવતઃ સંગ્રહનું સરળ સ્વરૂપ છે - તે મૂંઝવણને ટાળે છે. હા, અમે અરે યાદીની આગલી મેમરી સ્થાનમાંથી આગલી આઇટમ અથવા ડેટા પુનઃપ્રાપ્ત કરી શકીએ છીએ; જોકે, તે લિન્ક્ડ સૂચિમાં પોઇન્ટરની મદદથી સંગ્રહિત થાય છે. અહીં આપણને સ્ટોરેજ માટે બે મેમરી લોકેશનની જરૂર છે - ડેટા માટે એક, પોઇંટર માટે અન્ય. એક નિર્દેશક આગામી ડેટાની મેમરી સ્થાનને સંબોધે છે. અમે સહેલાઈથી સમજી શકીએ છીએ કે લિન્ક્ડ સૂચિ અનુક્રમે ડેટા સંગ્રહિત કરે છે; તેના બદલે, તે રેન્ડમ સંગ્રહ પદ્ધતિનો ઉપયોગ કરે છે. પોઇન્ટર મેમરીમાં ડેટા સ્થાનો શોધવામાં મુખ્ય તત્વો છે.

ડાયનેમિક એરે અને લિંક્ડ સૂચિ

અમે પહેલાથી જ ચર્ચા કરી છે કે બંને સ્ટોરેજ મિકેનિઝમ્સ ડેટામાં શામેલ છે અને અમે એરે યાદીની આંતરિક સ્ટોરેજ સ્કીમ માટે 'ડાયનેમિક એરે' શબ્દ આપી શકીએ છીએ. તે ફક્ત ડેટા ટુકડાઓ એક પછી બીજા નામ પછી મૂકે છે - જ્યારે લિંક્ડ સૂચિ આગલી આઇટમને ટ્રેક કરવા માટે પોઇન્ટરની મદદ સાથે આંતરિક સૂચિનો ઉપયોગ કરે છે. તેથી, તે આંતરિક કડી થયેલ સૂચિનો ઉપયોગ કરે છે, જેમ કે આગળના ડેટાને બતાવવા માટે સિંગલી અથવા બમણું જોડેલી સૂચિ.

મેમરી વપરાશ

અરે યાદી ફક્ત વાસ્તવિક ડેટા જ સંગ્રહિત કરે છે, અમારે ફક્ત સંગ્રહિત ડેટા માટે જ જગ્યા જરૂરી છે. તેનાથી વિપરિત, લિન્ક્ડ સૂચિમાં, અમે પણ પોઇન્ટરનો ઉપયોગ કરીએ છીએ. તેથી, બે મેમરી સ્થાનો આવશ્યક છે, અને અમે કહી શકીએ છીએ કે કડી થયેલ સૂચિ અરે યાદી કરતાં વધુ મેમરી વાપરે છે. લિંક્ડ સૂચિની એક ફાયદાકારક બાજુ એ છે કે તે અરે યાદીની વિરુદ્ધમાં અમારા ડેટાને સ્ટોર કરવા માટે સતત મેમરી સ્થાનોની જરૂર નથી. પોઇન્ટર આગામી ડેટા સ્થાનની સ્થિતિને પકડી રાખવામાં સક્ષમ છે, અને અમે નાના મેમરી સ્લોટ્સનો પણ ઉપયોગ કરી શકીએ છીએ જે સતત નથી. જ્યારે તે મેમરી વપરાશ માટે આવે છે, તો પોઇન્ટર લિંક્ડ સૂચિમાં મુખ્ય ભૂમિકા ભજવે છે, અને તે પણ તેમની અસરકારકતા કરે છે.

પ્રારંભિક અરે સૂચિ અને લિન્ક્ડ સૂચિનો કદ

અરે સૂચિ સાથે, એક ખાલી સૂચિ માટે 10 નું કદ આવશ્યક છે, પરંતુ લિન્ક્ડ સૂચિ સાથે, અમને આવી વિશાળ જગ્યાની જરૂર નથી. અમે 0 ની એક કદ સાથે ખાલી લિંક્ડ સૂચિ બનાવી શકીએ છીએ. પછીથી, અમે જરૂરીયાતના કદને વધારી શકીએ છીએ.

ડેટા પુનઃપ્રાપ્તિ

અરેની યાદીમાં ડેટા પુનઃપ્રાપ્તિ સરળ છે કારણ કે તે ક્રમશઃ સંગ્રહ કરે છે. તે સૌ પ્રથમ માહિતી સ્થાન ઓળખે છે; ત્યાંથી, બાકીના પુનઃપ્રાપ્ત કરવા માટે આગલી સ્થાન અનુક્રમે પહોંચે છે.તે પ્રથમ ડેટા પોઝિશનની જેમ ગણતરી કરે છે + 'એન', જ્યાં 'એન' એરે યાદીમાં ડેટાનો ક્રમ છે. લિંક કરેલ સૂચિ પ્રથમ ડેટા સ્થાન શોધવા માટે પ્રારંભિક નિર્દેશક ઉલ્લેખ કરે છે, અને ત્યાંથી તે દરેક ડેટા સાથે સંકળાયેલ પોઇન્ટરને આગલા ડેટાનું સ્થાન શોધવા માટે સૂચવે છે. પુનઃપ્રાપ્તિ પ્રક્રિયા મુખ્યત્વે પોઇન્ટર પર આધારિત છે, અને તેઓ અસરકારક રીતે અમને આગામી ડેટા સ્થાન બતાવશે.

ડેટા સમાપ્ત થાય છે

અરેની યાદી ડેટાના અંતને માર્ક કરવા માટે નલ મૂલ્યનો ઉપયોગ કરે છે, જ્યારે લિંક્ડ સૂચિ આ હેતુ માટે નલ નિર્દેશકનો ઉપયોગ કરે છે. જલદી સિસ્ટમ નલ માહિતી ઓળખે છે, અરે યાદી આગામી માહિતી પુનઃપ્રાપ્તિ બંધ. તેવી જ રીતે, નલ નિર્દેશક સિસ્ટમને આગળના ડેટા પુનઃપ્રાપ્તિ સુધી આગળ વધે છે.

રિવર્સ ટ્રાવર્સલ

લિન્ક્ડ સૂચિ આપણને ઉતરતા દિશાનિર્દેશકની મદદથી વિપરીત દિશામાં પસાર થવા દે છે (). જો કે, અરેની સૂચિમાં અમારી પાસે આવી સુવિધા નથી - રિવર્સ ટ્રાવર્સલ અહીં એક સમસ્યા બની જાય છે.

સિન્ટેક્સ

ચાલો બંને સ્ટોરેજ મિકેનિઝમ્સના જાવા સિન્ટેક્ષને જોઈએ.

અરે યાદી બનાવટ:

સૂચિબદ્ધતા = નવા અરેલીસ્ટ ();

અરે સૂચિમાં ઑબ્જેક્ટ્સ ઉમેરવા:

અરેલાઈસ્ટ્સ. ઉમેરો ("name1");

અરેલિસ્ટ્સ. ઉમેરો ("name2");

આ પ્રમાણે પરિણામ એરે યાદી જેવો દેખાશે - [નામ 1, નામ 2].

લિન્ક્ડ સૂચિ બનાવટ:

લિંક્ડલિસ્ટ્સની સૂચિ બનાવો = નવી લિંકલિસ્ટ ();

લિંક્ડ સૂચિમાં ઑબ્જેક્ટ્સને ઉમેરી રહ્યું છે:

લિંકડેલિસ્મસ્લેમ. ઉમેરો ("name3");

લિન્ક્ડલિસ્ટ્સ. ઉમેરો ("name4");

પરિણામ આ પ્રમાણે છે જેમની લિંક્ડ કરેલી સૂચિ આના જેવી દેખાશે - [નામ 3, નામ 4]

ગેટ અથવા સર્ચ ઑપરેશન માટે શું સારું છે?

અરેની સૂચિ O (1) નો કોઈપણ ડેટા શોધ ચલાવવા માટેનો સમય લે છે, જ્યારે લિન્ક્ડ સૂચિ n મી ડેટા સર્ચ માટે લે છે. તેથી, કોઈ અરે સૂચિ હંમેશાં કોઈપણ ડેટા શોધ માટે સતત સમયનો ઉપયોગ કરે છે, પરંતુ લિન્ક્ડ સૂચિમાં, સમય લેવામાં આવે છે તે ડેટાની સ્થિતિ પર આધારિત છે. એના પરિણામ રૂપે, અરે સૂચિ હંમેશાં ગેટ અથવા શોધ ઓપરેશન માટે વધુ સારી પસંદગી છે.

ઇન્સ્રરેશન અથવા એડિશન ઓપરેશન માટે શું સારું છે?

એરે યાદી અને લિન્ક્ડ સૂચિ બંને (O) (1) સમયના ડેટા ઉપરાંત માટે લઇ જાય છે. પરંતુ જો એરે ભરેલી હોય તો, અરેની સૂચિ તેને ફરીથી કદમાં લેવા માટે એક નવી રકમ લે છે અને વસ્તુઓની નવીનીકરણની નકલ કરે છે. આવા કિસ્સામાં, સૂચિબદ્ધ સૂચિ વધુ સારી પસંદગી છે.

દૂર ઓપરેશન માટે સારો છે?

દૂર ક્રિયા એરેના યાદી અને લિન્ક્ડ સૂચિ બન્નેમાં જેટલી જ સમય લે છે. અરે સૂચિમાં, આ ઑપરેશન ડેટા કાઢી નાંખે છે અને પછી નવી એરે રચવા માટે ડેટાની સ્થિતિને પાછી ખસેડે છે - તે ઓ (એન) સમય લે છે. લિંક્ડ સૂચિમાં, આ ક્રિયા ચોક્કસ ડેટાને પસાર કરે છે અને નવી સૂચિ બનાવવા માટે પોઇન્ટર સ્થિતિને બદલે છે. ટ્રાવર્સલ અને દૂર કરવાની સમય અહીં ઓ (એન) છે.

જે ઝડપી છે?

અમે જાણીએ છીએ કે એક અરે સૂચિ વાસ્તવિક ડેટાને સંગ્રહિત કરવા માટે એક આંતરિક એરેનો ઉપયોગ કરે છે. તેથી, જો કોઈ ડેટા કાઢી નાંખવામાં આવે છે, તો પછી તમામ આગામી ડેટાને મેમરી શિફ્ટ કરવાની જરૂર છે.દેખીતી રીતે, આ માટે નોંધપાત્ર સમયની જરૂર પડે છે અને વસ્તુઓને ધીમો પડી જાય છે લિંક્ડ સૂચિમાં આવી મેમરી શિફ્ટની જરૂર નથી, કારણ કે તે કરે છે તે પોઇન્ટર સ્થાન બદલાય છે. તેથી, કોઈ પણ પ્રકારની ડેટા સ્ટોરેજમાં એરે યાદી કરતાં લિન્ક્ટેડ સૂચિ વધુ ઝડપી છે. જો કે, આ ફક્ત ઓપરેશનના પ્રકાર પર આધાર રાખે છે, i. ઈ. ગેટ અથવા સર્ચ ઓપરેશન માટે, લિંક્ડ સૂચિ અરેની સૂચિ કરતાં ઘણો વધુ સમય લે છે. જ્યારે આપણે એકંદર કામગીરી પર નજર કરીએ છીએ ત્યારે અમે કહી શકીએ છીએ કે લિન્ક્ડ સૂચિ ઝડપી છે.

અરે સૂચિ અને લિંક કરેલ સૂચિનો ક્યારે ઉપયોગ કરવો?

નાના ડેટા આવશ્યકતાઓ માટે અરે યાદી શ્રેષ્ઠ અનુરૂપ છે જ્યાં સતત મેમરી ઉપલબ્ધ છે. પરંતુ જ્યારે આપણે વિશાળ પ્રમાણમાં ડેટા સાથે વ્યવહાર કરીએ છીએ ત્યારે સતત મેમરીની પ્રાપ્તિ માહિતી સંગ્રહ પદ્ધતિઓનું અમલીકરણ કરે છે, પછી ભલે તે નાનું કે વિશાળ હોય. આગળ, એ નક્કી કરો કે કઈ પસંદ કરો - અરે સૂચિ અથવા લિન્ક્ડ સૂચિ. જ્યારે તમે ફક્ત ડેટા સંગ્રહિત અને પુનઃપ્રાપ્તિની જરૂર હોય ત્યારે તમે એરે સૂચિ સાથે આગળ વધી શકો છો. પરંતુ સૂચિ માહિતીને હેરફેર કરીને તે ઉપરાંત તમને મદદ કરી શકે છે. એકવાર તમે નક્કી કરો કે ડેટા મેનીપ્યુલેશનની કેટલી વાર આવશ્યકતા છે, તે તપાસવું મહત્વનું છે કે તમે કયા પ્રકારની માહિતી પુનઃપ્રાપ્તિ સામાન્ય રીતે કરો છો. જ્યારે તે માત્ર ગેટ અથવા સર્ચ છે, ત્યારે અરેની યાદી એ વધુ સારી પસંદગી છે; અન્ય કામગીરી જેમ કે નિવેશ અથવા કાઢી નાંખવાનું માટે, લિંક કરેલી સૂચિ સાથે આગળ વધો.

ચાલો આપણે કોષ્ટક સ્વરૂપમાં તફાવતો જોઈએ.

એસ. એરે યાદી લિંક્ડ સૂચિ 1
ડેટા સ્ટોરેજ ફેશન અનુક્રમિક ડેટા સ્ટોરેજનો ઉપયોગ કરે છે
નોન-ક્રમિક ડેટા સ્ટોરેજનો ઉપયોગ કરે છે 2 < આંતરિક સંગ્રહ યોજના આંતરિક ગતિશીલ અરે જાળવે છે એક લિંક્ડ સૂચિ જાળવે છે
3 મેમરી વપરાશ ફક્ત ડેટા માટે મેમરી જગ્યા જરૂરી છે ડેટા માટે મેમરી સ્પેસની જરૂર છે પોઇન્ટર
4 પ્રારંભિક સૂચિનો કદ ઓછામાં ઓછી 10 વસ્તુઓ માટે જગ્યાની જરૂરત છે જગ્યાની જરૂર નથી અને અમે 0 ની ખાલી લિંકની સૂચિ પણ બનાવી શકીએ છીએ.
5 ડેટા પુનઃપ્રાપ્તિ પ્રથમ ડેટા પોઝિશનની જેમ ગણતરી કરે છે + 'એન', જ્યાં 'એન' એરે યાદીમાં ડેટાનો ઓર્ડર છે આવશ્યક ડેટા આવશ્યકતા પહેલા પ્રથમ અથવા છેલ્લો ટ્રાવેર્સલ
6 < ડેટા ઓફ સમાપ્ત નલ મૂલ્યો અંત ચિહ્નિત કરે છે નલ પોઇન્ટર અંત ચિહ્નિત કરે છે 7
રિવર્સ ટ્રાવર્સલ તેને મંજૂરી આપતું નથી તે ઉતરતા દિશાકાર દ્વારા મદદ કરે છે () 8
યાદી બનાવટ સિન્ટેક્સ સૂચિબદ્ધ યાદી = નવા અરે યાદી (); સૂચિબદ્ધ યાદી = નવી લિંક્ડલિસ્ટ (); 9
ઑબ્જેક્ટ્સ ઉમેરવાનું અરેલીલિસ્મ્પ્શન ઉમેરો ("name1"); લિન્ક્ડલિસ્ટ્સ. ઉમેરો ("name3");

10

મેળવો અથવા શોધો ઓ (1) સમય લે છે અને કામગીરીમાં સારું છે ઓ (એન) સમય લે છે અને કામગીરી ડેટાના પદ પર આધારિત છે

11

12 કાઢી નાંખો અથવા નિરાકરણ ઓ (એન) સમય લે છે 12
ઓ (એન) સમય લે છે 13 ક્યારે ઉપયોગ કરવો? જ્યારે ઘણાં બધાં ગેટ અથવા સર્ચ ઓપરેશન્સ સામેલ હોય; મેમરી પ્રાપ્યતા શરૂઆતમાં પણ વધારે હોવી જોઈએ
જ્યારે ઘણાં ઇન્સર્ટ અથવા કાઢી નાંખો ઓપરેશન્સ હોય છે, અને મેમરી ઉપલબ્ધતા સતત હોવી જરૂરી નથી