एरे र लिङ्क गरिएका सूचीहरू सम्बन्धी हाम्रो पाठमा स्वागत छ। यस पाठमा, हामी डेटा भण्डारण र व्यवस्थित गर्ने दुई सरल तरिकाहरू सिक्नेछौं। कल्पना गर्नुहोस् कि तपाईंसँग स्कूलमा खेलौना बक्सहरूको पङ्क्ति वा लकरहरूको लाइन छ। एरे र लिङ्क गरिएका सूचीहरू समान रूपमा काम गर्छन्। तिनीहरूले हामीलाई चीजहरू सफा र फेला पार्न सजिलो राख्न मद्दत गर्छन्। यो पाठ तपाईंलाई यी विचारहरू सजिलै बुझ्न मद्दत गर्न दैनिक उदाहरणहरू सहित सरल भाषामा लेखिएको छ।
डेटा संरचनाहरूले कम्प्युटरहरूलाई जानकारी भण्डारण र व्यवस्थित गर्न मद्दत गर्दछ। दुई महत्त्वपूर्ण डेटा संरचनाहरू एरे र लिङ्क गरिएका सूचीहरू हुन्। तपाईं एरेलाई बक्सहरूको पङ्क्तिको रूपमा सोच्न सक्नुहुन्छ, र लिङ्क गरिएको सूचीलाई खजाना खोजमा जोडिएका सुरागहरूको श्रृंखलाको रूपमा। यी दुवैले हामीलाई खेलौना, किताबहरू, वा तपाईंको मनपर्ने खाजा जस्ता धेरै वस्तुहरूको ट्र्याक राख्न मद्दत गर्दछ।
हामी एरे के हो, लिङ्क गरिएको सूची के हो, तिनीहरू कसरी काम गर्छन्, र तिनीहरू कसरी फरक छन् भन्ने बारेमा कुरा गर्नेछौं। हामी वास्तविक-विश्व उदाहरणहरू पनि देख्नेछौं जसले यी विचारहरूलाई सकेसम्म स्पष्ट बनाउँछ।
एउटा एरे भनेको वस्तुहरूको संग्रह मात्र हो। यो बक्सहरूको पङ्क्ति जस्तै हो जहाँ प्रत्येक बक्समा एउटा वस्तु हुन्छ। उदाहरणका लागि, पङ्क्तिमा लाइनमा राखिएका पाँचवटा बक्सहरूको सेट कल्पना गर्नुहोस्। तपाईं प्रत्येक बक्सलाई मनपर्ने खेलौना वा खाजा भण्डारण गर्न प्रयोग गर्न सक्नुहुन्छ।
एरेमा रहेको प्रत्येक बाकसमा अनुक्रमणिका भनिने एउटा संख्या हुन्छ। पहिलो बाकसलाई सामान्यतया ०, अर्को १, त्यसपछि २, र यस्तै अन्य अंक दिइन्छ। यो संख्याले तपाईंलाई कुनै खास वस्तु छिटो फेला पार्न मद्दत गर्छ। उदाहरणका लागि, यदि तपाईं तेस्रो बाकसमा वस्तु चाहनुहुन्छ भने, तपाईंले अनुक्रमणिका २ भएको बक्सलाई हेर्नु पर्छ।
एरेमा वस्तु कसरी फेला पार्न सकिन्छ भनेर व्याख्या गर्न यहाँ एउटा सरल सूत्र दिइएको छ। यदि पहिलो बाकस सुरुवात बिन्दुमा छ भने, कुनै पनि वस्तुको ठेगानालाई यसरी सोच्न सकिन्छ:
\( \textrm{ठेगाना}(A(i)) = \textrm{ठेगाना}(A(0)) + i \times \textrm{(एउटा वस्तुको आकार)} \)
यसले हामीलाई बताउँछ कि पहिलो बाकसबाट हामीले चाहेको बाकसमा जानको लागि, तपाईंले निश्चित संख्यामा खाली ठाउँहरू गणना गर्नुहुन्छ।
सानो चलचित्र थिएटरमा रहेका सिटहरू जस्तै एउटा एरेको बारेमा सोच्नुहोस्। प्रत्येक सिटको एउटा नम्बर हुन्छ, र यदि तपाईंलाई यसको नम्बर थाहा छ भने तपाईं छिटो आफ्नो सिटमा जान सक्नुहुन्छ।
कल्पना गर्नुहोस् तपाईंको स्कूलमा लकरहरूको पङ्क्ति छ, प्रत्येकमा एउटा विशिष्ट नम्बर छ। जब तपाईं आफ्नो झोला आफ्नो लकरमा राख्न जानुहुन्छ, तपाईं लकरमा रहेको विशिष्ट नम्बर प्रयोग गर्नुहुन्छ। एरेमा, प्रत्येक लकर एउटा बक्स जस्तै हुन्छ, र नम्बरले तपाईंलाई तपाईंको झोला—वा डेटा—कहाँ राखिएको छ भनेर ठ्याक्कै बताउँछ।
लिङ्क गरिएको सूची वस्तुहरू भण्डारण गर्ने अर्को तरिका हो। यो एरे भन्दा फरक छ किनभने यसले स्थिर बक्सहरूको लामो पङ्क्ति प्रयोग गर्दैन। यसको सट्टा, यसले नोड भनिने विशेष बक्सहरू प्रयोग गर्दछ। प्रत्येक नोडमा एउटा वस्तु हुन्छ र अर्को नोड कहाँ छ भनेर बताउने सूचक पनि हुन्छ।
कल्पना गर्नुहोस् तपाईं खजाना खोज्दै हुनुहुन्छ। तपाईंले फेला पार्नुहुने प्रत्येक सुरागले तपाईंलाई अर्को सुराग कहाँ लुकेको छ भनेर बताउँछ। लिङ्क गरिएको सूचीमा, प्रत्येक नोड यी सुरागहरू मध्ये एक जस्तै हुन्छ। जब तपाईं पहिलो सुरागबाट सुरु गर्नुहुन्छ, तपाईंले एउटा नोडबाट अर्को नोडमा सूचकलाई पछ्याउनुहुन्छ जबसम्म तपाईंले आफूलाई चाहिने कुरा फेला पार्नुहुन्न।
तपाईंले प्रत्येक नोडलाई सानो खामको रूपमा सोच्न सक्नुहुन्छ। खाममा एउटा कार्ड (डेटा) र एउटा नोट (सूचक) पनि हुन्छ। यो नोटले तपाईंलाई कुन खाम लाइनमा अर्को आउँछ भनेर बताउँछ।
नोड भनेको के हो भनेर लेख्ने सरल तरिका हेरौं:
नोड = {डेटा, सूचक)
नोडमा रहेको "डेटा" भनेको भण्डारण गरिएको जानकारी हो, र "पोइन्टर" भनेको तीर जस्तै हो जसले तपाईंलाई अर्को नोडमा निर्देशित गर्दछ। एरे जस्तो नभई, लिङ्क गरिएको सूचीले सबै नोडहरूलाई मेमोरीमा एकअर्काको छेउमा राख्न आवश्यक पर्दैन; तिनीहरू जहाँ पनि हुन सक्छन्, जबसम्म पोइन्टरहरूले तिनीहरूलाई जोड्छन्।
लिङ्क गरिएका सूचीहरूको विभिन्न शैलीहरू छन्। यहाँ तीन सामान्य प्रकारहरू छन्:
कल्पना गर्नुहोस् तपाईं एउटा खजाना नक्सा पछ्याउँदै हुनुहुन्छ। नक्साको प्रत्येक चरणले तपाईंलाई अर्को चरण कहाँ छ भनेर बताउँछ। तपाईंले अतिरिक्त संकेत थप्नुभयो वा हटाउनुभयो भने पनि, तपाईं प्रत्येक कार्डमा संकेत पढेर अझै पनि पछ्याउन सक्नुहुन्छ। यसरी लिङ्क गरिएको सूचीले काम गर्छ। प्रत्येक नोड (वा संकेत) अर्कोसँग जोडिएको हुन्छ, जसले गर्दा तपाईं सूचीमा एक-एक चरणमा जान सक्नुहुन्छ।
एरे र लिङ्क गरिएको सूची दुवैले हामीलाई वस्तुहरू भण्डारण गर्न मद्दत गर्छन्, तर तिनीहरूले यो फरक तरिकाले गर्छन्। यहाँ केही तुलनाहरू छन्:
प्रत्येक डेटा संरचनाको आफ्नै राम्रा पक्षहरू र चुनौतीहरू हुन्छन्। यी कुराहरू बुझ्दा तपाईंलाई प्रयोग गर्नको लागि उत्तम छनौट गर्न मद्दत गर्छ।
एरेहरू:
फाइदा:
बेफाइदाहरू:
लिङ्क गरिएका सूचीहरू:
फाइदा:
बेफाइदाहरू:
हामी कसरी सरल तरिकाले एरे प्रयोग गर्न सक्छौं हेरौं। मानौं तपाईं आफ्नो मनपर्ने पाँच रङहरू भण्डारण गर्न चाहनुहुन्छ। तपाईंले पाँच बक्सहरू भएको एरे सिर्जना गर्नुहुन्छ। त्यसपछि तपाईंले प्रत्येक रङलाई बक्समा क्रमबद्ध रूपमा राख्नुहुन्छ। उदाहरणका लागि:
अब, यदि तपाईं बक्स २ मा कुन रङ छ भनेर जान्न चाहनुहुन्छ भने, तपाईंले त्यो बक्स हेर्नुभयो र तपाईंले "हरियो" देख्नुहुनेछ। यो सजिलो पहुँच एरे प्रयोग गर्ने सबैभन्दा राम्रो भागहरू मध्ये एक हो।
अब, लिङ्क गरिएको सूची हेरौं। यसलाई एउटा खजाना खोजको रूपमा सोच्नुहोस् जहाँ तपाईं एउटा सुरागबाट सुरु गर्नुहुन्छ र त्यसपछि अर्को फेला पार्न निर्देशनहरू पालना गर्नुहुन्छ। लिङ्क गरिएको सूचीमा, हामी केही डेटा भएको नोडबाट सुरु गर्छौं। यो नोडमा एउटा सूचक हुन्छ जसले कुन नोड अर्को आउँछ भनेर देखाउँछ।
उदाहरणका लागि, कल्पना गर्नुहोस् कि तपाईंसँग लिङ्क गरिएको सूचीमा तीनवटा नोडहरू छन् जसले रमाइलो कथा भन्छन्:
तपाईंले नोड १ बाट सुरु गर्नुहुन्छ र नोड २ मा जाने सूचक (सूचक) पछ्याउनुहोस्, त्यसपछि नोड ३ मा जानुहोस्। यदि तपाईं यी मध्ये कुनै पनि बीचमा नयाँ संकेत थप्न चाहनुहुन्छ भने पनि, तपाईंले केही सूचकहरू मात्र परिवर्तन गर्न आवश्यक छ। यसले लिङ्क गरिएका सूचीहरूलाई धेरै लचिलो बनाउँछ।
यी डेटा संरचनाहरूलाई आफ्नो दिमागमा चित्रण गर्नु उपयोगी हुन्छ। एउटा एरेलाई शेल्फमा स्पष्ट, लेबल गरिएका बक्सहरूको लामो पङ्क्तिको रूपमा कल्पना गर्नुहोस्। प्रत्येक बक्समा केही न केही हुन्छ र निश्चित स्थान हुन्छ। अब, लिङ्क गरिएको सूचीलाई कार्डहरूको स्ट्रिङको रूपमा कल्पना गर्नुहोस्। प्रत्येक कार्डमा अर्को कार्ड कहाँ लुकेको छ भनेर संकेत गर्ने नोट हुन्छ। एरेमा, तपाईं यसको संख्याद्वारा सिधै विशेष बक्समा जान सक्नुहुन्छ। लिङ्क गरिएको सूचीमा, तपाईंले कार्डहरूलाई क्रमबद्ध रूपमा पछ्याउन आवश्यक छ।
धेरै दैनिक कामहरूमा एरेहरू प्रयोग गरिन्छ। उदाहरणका लागि, एउटा क्यालेन्डरको कल्पना गर्नुहोस्। क्यालेन्डरमा प्रत्येक हप्तामा निश्चित दिनहरू हुन्छन्, र ती दिनहरू पङ्क्तिबद्ध रूपमा व्यवस्थित हुन्छन्। जब तपाईं क्यालेन्डर हेर्नुहुन्छ, तपाईंलाई कुन दिन कुन ठाउँमा छ भनेर ठ्याक्कै थाहा हुन्छ।
समयसँगै वस्तुहरूको संख्या परिवर्तन हुन सक्ने अवस्थामा लिङ्क गरिएका सूचीहरू प्रयोग गरिन्छ। आइसक्रिम ट्रकमा पर्खिरहेका मानिसहरूको लाइनको बारेमा सोच्नुहोस्। कहिलेकाहीँ नयाँ मानिसहरू लाइनमा सामेल हुन्छन्, र कहिलेकाहीँ कोही छोड्छन्। नयाँ स्थिर संरचना सिर्जना नगरीकनै लाइन बढ्न वा संकुचित हुन सक्छ। यसले लिङ्क गरिएका सूचीहरूलाई परिदृश्यहरूमा धेरै उपयोगी बनाउँछ जहाँ चीजहरू प्रायः परिवर्तन हुन्छन्।
एरे र लिङ्क गरिएको सूचीहरू बीच छनौट गर्नु तपाईंले आफ्नो डेटासँग के गर्न आवश्यक छ भन्ने कुरामा निर्भर गर्दछ। यदि तपाईंलाई थाहा छ कि तपाईंसँग सधैं निश्चित संख्यामा वस्तुहरू हुनेछन् - जस्तै हप्ताका दिनहरू - तब एरे धेरै उपयुक्त हुन्छ। यद्यपि, यदि डेटाको मात्रा परिवर्तन हुन्छ र तपाईंलाई सजिलै अनुकूलन गर्न सक्ने संरचना चाहिन्छ भने, लिङ्क गरिएको सूची राम्रो विकल्प हुनेछ।
उदाहरणका लागि, कम्प्युटर गेममा, प्रत्येक स्तरको लागि स्कोर भण्डारण गर्न एरे प्रयोग गर्न सकिन्छ किनभने स्तरहरूको संख्या निश्चित हुन्छ। अर्कोतर्फ, खेलाडी कार्यहरू वा चालहरूको सूची व्यवस्थापन गर्न लिङ्क गरिएको सूची प्रयोग गर्न सकिन्छ, जुन खेल जारी रहँदा बढ्न सक्छ।
जब तपाईंलाई वस्तुहरूको स्थिति अनुसार द्रुत पहुँच चाहिन्छ, एरेहरू उत्तम विकल्प हुन्। यो किनभने यदि तपाईंलाई यसको संख्या थाहा छ भने तपाईं सिधै कुनै पनि स्थानमा जान सक्नुहुन्छ। यद्यपि, जब तपाईंलाई बारम्बार वस्तुहरू थप्न वा हटाउन आवश्यक पर्दछ, लिङ्क गरिएका सूचीहरू बढी उपयोगी हुन्छन् किनभने तिनीहरूले तपाईंलाई धेरै वस्तुहरू वरिपरि नसारिकन सूची परिवर्तन गर्न अनुमति दिन्छन्।
यसलाई यसरी सोच्नुहोस्: यदि तपाईंसँग पृष्ठहरूको सेट संख्या भएको स्टिकर एल्बम छ भने, एरे त्यो एल्बम जस्तै हुन्छ। तर यदि तपाईंसँग बुलेटिन बोर्डमा थप्ने पोस्टकार्डहरूको बढ्दो संग्रह छ भने, लिङ्क गरिएको सूची त्यस्तै हुन्छ किनभने तपाईं सम्पूर्ण बोर्डलाई पुन: व्यवस्थित नगरी अरूहरू बीच सजिलै नयाँ पोस्टकार्ड थप्न सक्नुहुन्छ।
हाम्रो पाठको मुख्य बुँदाहरूको समीक्षा गरौं:
एरेहरू:
लिङ्क गरिएका सूचीहरू:
भिन्नता र प्रयोगहरू:
संक्षेपमा, एरे र लिङ्क गरिएको सूचीहरू डेटा व्यवस्थित गर्न प्रयोग गरिने दुई महत्त्वपूर्ण डेटा संरचनाहरू हुन्। एरेहरूले निश्चित, संख्यात्मक बक्सहरूको पङ्क्ति जस्तै काम गर्छन्, जबकि लिङ्क गरिएको सूचीहरूले खजाना खोज जस्तै काम गर्छन् जहाँ प्रत्येक चरणले तपाईंलाई अर्को कहाँ जाने भनेर बताउँछ। दुबै विधिहरूको आफ्नै शक्तिहरू छन् र कार्यको आवश्यकताको आधारमा फरक परिस्थितिहरूमा प्रयोग गरिन्छ।
डेटा भण्डारणका यी दुई विधिहरू बुझ्नु धेरै उपयोगी छ। धेरै कम्प्युटर प्रोग्रामहरू, खेलहरू, र अनुप्रयोगहरूले पृष्ठभूमिमा एरेहरू र लिङ्क गरिएका सूचीहरू प्रयोग गर्छन्। तिनीहरूले कसरी काम गर्छन् भनेर सिकेर, तपाईंले कम्प्युटरहरूले डेटा कसरी व्यवस्थित र व्यवस्थापन गर्छन् भन्ने बारे अन्तर्दृष्टि प्राप्त गर्नुहुन्छ।
सम्झनुहोस्: संरचना निश्चित हुँदा एरेहरू सरल र छिटो हुन्छन्, जबकि लिङ्क गरिएका सूचीहरूले डेटा परिवर्तन हुँदा लचिलोपन प्रदान गर्दछ। चाहे तपाईं लकरहरूको पङ्क्तिको कल्पना गर्नुहोस् वा सुरागहरूको खजाना ट्रेल, यी अवधारणाहरूले हामीलाई जानकारी कसरी भण्डारण र हरेक दिन प्रयोग गरिन्छ भन्ने कुरा बुझ्न मद्दत गर्दछ।
यस पाठले तपाईंलाई एरे र लिङ्क गरिएका सूचीहरू के हुन् भन्ने बारे स्पष्ट विचार दिएको छ। तपाईंले कम्प्युटर विज्ञान सिक्न र अन्वेषण गर्न जारी राख्दै जाँदा, यी आधारभूत विचारहरूले तपाईंलाई थप जटिल विषयहरू बुझ्न मद्दत गर्नेछन्। तिनीहरू थप उन्नत डेटा संरचना र एल्गोरिदमहरूको निर्माण ब्लकहरू हुन्।
मुख्य बुँदाहरूको सारांश:
एरे र लिङ्क गरिएका सूचीहरूको बारेमा यो पाठ पढ्नुभएकोमा धन्यवाद। हामी आशा गर्छौं कि तपाईंले स्पष्ट र सरल तरिकाले डेटा भण्डारण गर्ने यी विधिहरूको बारेमा सिक्न रमाइलो गर्नुभएको छ। तपाईं बढ्दै जाँदा र थप सिक्दै जाँदा, यी आधारभूत संरचनाहरू र तिनीहरूले कम्प्युटरहरूलाई कुशलतापूर्वक काम गर्न कसरी मद्दत गर्छन् भनेर सम्झनुहोस्।