ऐरे और लिंक्ड सूची के बीच अंतर

लेखक: Laura McKinney
निर्माण की तारीख: 3 अप्रैल 2021
डेट अपडेट करें: 7 मई 2024
Anonim
सरणी और लिंक्ड सूची के बीच अंतर | ऐरे बनाम लिंक्ड सूची | #ask4help
वीडियो: सरणी और लिंक्ड सूची के बीच अंतर | ऐरे बनाम लिंक्ड सूची | #ask4help

विषय


के बीच का प्रमुख अंतर सरणी तथा लिंक्ड सूची उनकी संरचना के संबंध में। ऐरे हैं सूचकांक आधारित डेटा संरचना जहां प्रत्येक तत्व एक सूचकांक से जुड़ा होता है। दूसरी ओर, लिंक्ड सूची निर्भर करती है संदर्भ जहां प्रत्येक नोड में डेटा और पिछले और अगले तत्व के संदर्भ होते हैं।

मूल रूप से, एक सरणी एक समान शीर्षक या एक चर नाम के तहत अनुक्रमिक स्मृति स्थानों में संग्रहीत समान डेटा ऑब्जेक्ट्स का एक सेट है।

जबकि लिंक्ड सूची एक डेटा संरचना है जिसमें तत्वों का एक क्रम होता है जहां प्रत्येक तत्व अपने अगले तत्व से जुड़ा होता है। लिंक की गई सूची के एक तत्व में दो फ़ील्ड हैं। एक डेटा फ़ील्ड है, और अन्य लिंक फ़ील्ड है, डेटा फ़ील्ड में संग्रहीत और संसाधित किए जाने वाले वास्तविक मूल्य शामिल हैं। इसके अलावा, लिंक फ़ील्ड लिंक की गई सूची में अगले डेटा आइटम का पता रखती है। किसी विशेष नोड तक पहुंचने के लिए उपयोग किए जाने वाले पते को एक पॉइंटर के रूप में जाना जाता है।

एक सरणी और लिंक की गई सूची के बीच एक और महत्वपूर्ण अंतर यह है कि एरे का एक निश्चित आकार है और पूर्व घोषित किए जाने की आवश्यकता है, लेकिन लिंक्ड सूची निष्पादन के दौरान आकार और विस्तार और अनुबंध के लिए प्रतिबंधित नहीं है।


  1. तुलना चार्ट
  2. परिभाषा
  3. मुख्य अंतर
  4. निष्कर्ष

तुलना चार्ट

तुलना के लिए आधारसरणीलिंक्ड सूची
बुनियादीयह एक निश्चित संख्या में डेटा आइटम है।यह एक ऑर्डर किया गया सेट है जिसमें डेटा आइटम्स की एक वेरिएबल संख्या होती है।
आकारघोषणा के दौरान निर्दिष्ट।निर्दिष्ट करने की आवश्यकता नहीं है; विकास और निष्पादन के दौरान सिकुड़ना।
भंडारण आवंटन संकलन समय के दौरान तत्व स्थान आवंटित किया जाता है।रन टाइम के दौरान एलिमेंट पोजिशन असाइन की जाती है।
तत्वों का क्रम लगातार स्टोर किया अनियमित रूप से संग्रहीत
तत्व तक पहुँचनाप्रत्यक्ष या बेतरतीब ढंग से पहुँचा, अर्थात्, सरणी सूचकांक या सबस्क्रिप्ट निर्दिष्ट करें।क्रमिक रूप से एक्सेस किया गया, यानी, सूचक द्वारा सूची में पहले नोड से शुरू होने वाला ट्रैवर्स।
तत्व का सम्मिलन और विलोपनस्थानांतरण के लिए अपेक्षाकृत धीमी गति से आवश्यक है।आसान, तेज और कुशल।
खोज कर बाइनरी खोज और रैखिक खोजरैखिक खोज
मेमोरी की आवश्यकता हैकम से अधिक
मेमोरी यूटिलाइजेशनअप्रभावीकुशल


ऐरे की परिभाषा

एक सरणी को सजातीय तत्वों या डेटा आइटमों की एक निश्चित संख्या के रूप में परिभाषित किया गया है। इसका मतलब है कि एक सरणी में केवल एक प्रकार का डेटा हो सकता है, या तो सभी पूर्णांक, सभी फ़्लोटिंग-पॉइंट नंबर या सभी वर्ण। एक सरणी की घोषणा इस प्रकार है:
int a;
जहां int डेटा प्रकार या तत्वों के प्रकार स्टोर को निर्दिष्ट करता है। "ए" एक ऐरे का नाम है, और वर्गाकार कोष्ठकों के अंदर निर्दिष्ट संख्या एक ऐरे स्टोर कर सकने वाले तत्वों की संख्या है, इसे ऐरे का आकार या लंबाई भी कहा जाता है।

आइए सरणियों के बारे में याद किए जाने वाली कुछ अवधारणाओं को देखें:

  • एक सरणी के व्यक्तिगत तत्वों को वर्ग कोष्ठक के अंदर सूचकांक या सबस्क्रिप्ट (सरणी में तत्व के स्थान का निर्धारण) के बाद, सरणी के नाम का वर्णन करके पहुँचा जा सकता है। उदाहरण के लिए, सरणी के 5 वें तत्व को पुनः प्राप्त करने के लिए, हमें एक बयान लिखने की आवश्यकता है।
  • किसी भी स्थिति में एक सरणी के तत्वों को लगातार मेमोरी स्थान में संग्रहीत किया जाएगा।
  • सरणी के पहले तत्व में सूचकांक शून्य है। इसका अर्थ है कि पहला और अंतिम तत्व क्रमशः, और एक के रूप में निर्दिष्ट किया जाएगा।
  • उन तत्वों की संख्या जिन्हें किसी सरणी में संग्रहीत किया जा सकता है, अर्थात्, किसी सरणी का आकार या उसकी लंबाई निम्नलिखित शब्दों द्वारा दी गई है:
    (अपर बाउंड-लोअर बाउंड) + 1
    उपरोक्त सरणी के लिए, यह (9-0) + 1 = 10 होगा। जहाँ 0 सरणी की निचली सीमा है, और 9 सरणी की ऊपरी सीमा है।
  • ऐरे को लूप के माध्यम से पढ़ा या लिखा जा सकता है। यदि हम एक-आयामी सरणी को पढ़ते हैं, तो इसे पढ़ने के लिए एक लूप की आवश्यकता होती है और उदाहरण के लिए (ing) लिखने के लिए अन्य:
    ए। एक सरणी पढ़ने के लिए
    के लिए (i = 0; मैं <= 9; मैं ++)
    {स्कैनफ़ ("% d", और ए); }
    ख। एक सरणी लिखने के लिए
    के लिए (i = 0; मैं <= 9; मैं ++)
    {f ("% d"), ए; }
  • 2-डी सरणी के मामले में, इसे दो छोरों की आवश्यकता होगी और इसी तरह एन-आयामी सरणी को एन छोरों की आवश्यकता होगी।

सरणियों पर किए गए कार्य निम्न हैं:

  1. व्यूह रचना
  2. एक सरणी को पार करना
  3. नए तत्वों का सम्मिलन
  4. आवश्यक तत्वों का विलोपन।
  5. किसी तत्व का संशोधन।
  6. सरणियों का विलय

उदाहरण

निम्नलिखित कार्यक्रम सरणी के पढ़ने और लिखने को दिखाता है।

#शामिल
#शामिल
शून्य मुख्य ()
{
int a, i;
एफ ("सरणी दर्ज करें");
के लिए (i = 0; मैं <= 9; मैं ++)
{
स्कैनफ़ ("% डी", & ए);
}
एफ ("सरणी दर्ज करें");
के लिए (i = 0; मैं <= 9; मैं ++)
{
च ("% d n", ए);
}
getch ();
}

लिंक्ड सूची की परिभाषा

लिंक की गई सूची एक दूसरे से जुड़े कुछ डेटा तत्वों की एक विशेष सूची है। इसमें हर तत्व अगले तत्व की ओर इशारा करता है जो तार्किक क्रम का प्रतिनिधित्व करता है। प्रत्येक तत्व को नोड कहा जाता है, जिसमें दो भाग होते हैं।

जानकारी भाग जो जानकारी और पॉइंटर को संग्रहीत करता है जो अगले तत्व को इंगित करता है। जैसा कि आप पते के भंडारण के लिए जानते हैं, हमारे पास सी नामक एक अद्वितीय डेटा संरचनाएं हैं। इसलिए सूची का दूसरा क्षेत्र एक सूचक प्रकार होना चाहिए।

लिंक्ड लिस्ट के प्रकार सिंगली-लिंक्ड लिस्ट, डब्ली लिंक्ड लिस्ट, सर्कुलर लिंक्ड लिस्ट, सर्कुलर डबल लिंक्ड लिस्ट हैं।

लिंक्ड सूची पर किए गए संचालन हैं:

  1. सृष्टि
  2. traversing
  3. निवेशन
  4. विलोपन
  5. खोज कर
  6. कड़ी
  7. प्रदर्शन

उदाहरण

निम्नलिखित स्निपेट एक लिंक की गई सूची के निर्माण को दिखाता है:

संरचना नोड
{
int संख्या;
स्टैक नोड * अगला;
}
start = NULL;
शून्य बनाएँ ()
{
typedef संरचना नोड NODE;
NODE * p, * q;
चार पसंद;
पहला = NULL;
करना
{
p = (NODE *) मॉलोक (आकार (NODE));
f ("डेटा आइटम दर्ज करें n");
स्कैनफ़ ("% d", & p -> संख्या);
अगर (p == NULL)
{
q = start;
जबकि (q -> अगला! = NULL)
{q = q -> अगला
}
p -> अगला = q -> अगला;
क्यू -> = पी;
}
अन्य
{
p -> अगला = प्रारंभ;
start = p;
}
f ("क्या आप जारी रखना चाहते हैं (प्रकार y या n)? n");
स्कैनफ़ ("% c", और पसंद);
}
जबकि (पसंद == y) || (पसंद == Y));
}

  1. एक सरणी डेटा संरचना में समान प्रकार के डेटा तत्वों का एक संग्रह होता है, जबकि लिंक की गई सूची को गैर-आदिम डेटा संरचना माना जाता है, जिसमें नोड्स के रूप में ज्ञात अनऑर्डिनेटेड लिंक तत्वों का संग्रह होता है।
  2. सरणी में तत्व इंडेक्स से संबंधित होते हैं, यानी, यदि आप चौथे तत्व में जाना चाहते हैं, तो आपको वर्गाकार कोष्ठक के भीतर इसके सूचकांक या स्थान के साथ चर नाम लिखना होगा।
    एक लिंक्ड लिस्ट में हालांकि, आपको सिर से शुरू करना होगा और चौथे तत्व तक पहुंचने तक अपना काम करना होगा।
  3. जबकि लिंक की गई लिस्ट में रैखिक समय लगता है, तब एलीमेंट एरे को एक्सेस करना तेज़ है, यह काफी धीमा है।
  4. सरणियों में सम्मिलन और विलोपन जैसे संचालन बहुत समय का उपभोग करते हैं। दूसरी ओर, लिंक्ड लिस्ट में इन ऑपरेशंस का प्रदर्शन तेज़ है।
  5. एरे निश्चित आकार के होते हैं। इसके विपरीत, लिंक्ड सूची गतिशील और लचीली हैं और इसके आकार का विस्तार और अनुबंध कर सकती हैं।
  6. एक सरणी में, मेमोरी को संकलन समय के दौरान सौंपा गया है जबकि लिंक्ड सूची में इसे निष्पादन या रनटाइम के दौरान आवंटित किया गया है।
  7. तत्वों को सरणियों में लगातार संग्रहीत किया जाता है जबकि इसे लिंक्ड सूचियों में यादृच्छिक रूप से संग्रहीत किया जाता है।
  8. सरणी में सूचकांक के भीतर वास्तविक डेटा संग्रहीत होने के कारण मेमोरी की आवश्यकता कम है। के रूप में, अतिरिक्त अगले और पिछले संदर्भित तत्वों के भंडारण के कारण लिंक्ड सूचियों में अधिक स्मृति की आवश्यकता है।
  9. इसके अलावा मेमोरी उपयोग सरणी में अक्षम है। इसके विपरीत, मेमोरी उपयोग सरणी में कुशल है।

निष्कर्ष

सरणी और लिंक की गई सूचियाँ हैं डेटा संरचना के प्रकार उनकी संरचना, पहुंच और हेरफेर के तरीकों, स्मृति की आवश्यकता और उपयोग में भिन्न होते हैं। और इसके कार्यान्वयन पर विशेष लाभ और हानि है। नतीजतन, या तो एक का उपयोग आवश्यकतानुसार किया जा सकता है।