लिंक्ड लिस्ट डेटा स्ट्रक्चर विश्लेषण

Sep 10, 2024

लिंक्ड लिस्ट - डेटा स्ट्रक्चर पर लेक्चर

विषय का परिचय

  • लिंक्ड लिस्ट एक डेटा स्ट्रक्चर है जिसे आज के लेक्चर में समझा जाएगा।
  • पिछले लेक्चर में हमने OOPs के बेसिक्स कवर किए थे।
  • लिंक्ड लिस्ट की इम्प्लीमेंटेशन C++ में देखी जाएगी।

लिंक्ड लिस्ट क्या है?

  • एक लिनियर डेटा स्ट्रक्चर जिसमें वैल्यू की सूची स्टोर की जाती है।
  • यह एरेज़ से भिन्न होती है क्योंकि एरेज़ में स्टेटिक साइज़ होता है जबकि लिंक्ड लिस्ट में डायनामिक साइज़।

एरेज़ और लिंक्ड लिस्ट के बीच अंतर

  • स्टेटिक साइज़: एरेज़ में स्टैटिक साइज़ होता है जबकि लिंक्ड लिस्ट में डायनामिक साइज़ होता है।
  • नॉन-कंटिग्युअस मेमोरी: लिंक्ड लिस्ट के मेमोरी ब्लॉक कंटिग्युअस नहीं होते।
  • कॉस्टली ऑपरेशन: एरेज़ में इंसर्शन और डिलीशन कॉस्टली होते हैं, जबकि लिंक्ड लिस्ट में ये आसान होते हैं।

लिंक्ड लिस्ट के लाभ

  • डायनामिक मेमोरी एलोकेशन के कारण कोई स्टेटिक साइज़ नहीं होता।
  • नॉन-कंटिग्युअस मेमोरी एलोकेशन की सुविधा।
  • आसान इंसर्शन और डिलीशन।

कोड में इम्प्लीमेंटेशन

क्लास डिफ़ाइन करना

  • नोड को एक क्लास के रूप में डिफाइन करते हैं जिसमें:
    • वैल्यू स्टोर की जाती है।
    • नेक्स्ट पॉइंटर होता है।

लिंक्ड लिस्ट ऑपरेशन्स

1. हेड में इंसर्शन

  • कोड:
    • नया नोड क्रिएट करना।
    • न्यू नोड का नेक्स्ट फील्ड हेड की ओर पॉइंट करना।
    • हेड को न्यू नोड की ओर पॉइंट करना।

2. एन्ड में इंसर्शन

  • कोड:
    • लास्ट नोड तक पहुँचने के लिए ट्रेवल करना।
    • लास्ट नोड के नेक्स्ट में न्यू नोड को पॉइंट करना।

3. आर्बिट्रेरी पोजीशन पर इंसर्शन

  • कोड:
    • स्पेसिफिक पोजीशन तक ट्रेवल करना।
    • लिंक चेंज करना ताकि नोड्स सही तरीके से जुड़ें।

4. डिलीशन ऑपरेशन्स

  • स्टार्ट से डिलीशन:
    • हेड को हेड के नेक्स्ट पर मूव करना।
  • एन्ड से डिलीशन:
    • सेकंड लास्ट नोड तक पहुँचना और उसे लास्ट नोड पॉइंट करना।
  • पोजीशन से डिलीशन:
    • स्पेसिफिक पोजीशन तक ट्रेवल करना और लिंक चेंज करना।

विशेष प्रश्न

हर वैकल्पिक एलिमेंट को हटाना

  • उद्देश्य: हर वैकल्पिक नोड को डिलीट करना, दूसरे नोड से शुरू करके।
  • कोड:
    • करंट और नेक्स्ट नोड्स को पहचानकर उन्हें हटाना।

डुप्लीकेट एलिमेंट्स हटाना

  • कोड:
    • लिंक्ड लिस्ट को ट्रेवल करना और डुप्लीकेट्स को हटाना।

रिवर्स प्रिंटिंग

  • रिकर्शन का उपयोग करके लिंक लिस्ट को रिवर्स में प्रिंट करना।

फुल रिवर्सिंग

  • कोड:
    • करंट, प्रीवियस, और नेक्स्ट पॉइंटर्स का उपयोग करके नोड्स की लिंक को रिवर्स करना।

हर के नोड्स को रिवर्स करना

  • कोड:
    • के नोड्स को इट्रेटिव मेथड से रिवर्स करना और फिर रेस्ट को रिकर्शन से।