Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Javascript

जावास्क्रिप्ट में एकल लिंक की गई सूची से तत्वों को हटा दें

<घंटा/>

मान लीजिए, हमारे पास इस तरह एक सिंगल लिंक्ड लिस्ट है -

const list = {
   value: 1,
   next: {
      value: 2,
      next: {
         value: 3,
         next: {
            value: 4,
            next: {
               value: 5,
               next: {
                  value: 6,
                     next: {
                        value: 7,
                        next: null
                     }
                  }
               }
            }
         }
      }
};

हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना आवश्यक है जो एक ऐसी सूची को पहले तर्क के रूप में और एक संख्या को दूसरे तर्क के रूप में लेता है।

फ़ंक्शन को यह खोजना चाहिए कि सूची में उस मान के साथ कोई नोड मौजूद है या नहीं, यदि ऐसा होता है, तो फ़ंक्शन को सूची से नोड को हटा देना चाहिए।

उदाहरण

इसके लिए कोड होगा -

const list = {
   value: 1,
   next: {
      value: 2,
      next: {
         value: 3,
         next: {
            value: 4,
            next: {
               value: 5,
               next: {
                  value: 6,
                  next: {
                     value: 7,
                     next: null
                  }
               }
            }
         }
      }
   }
};
const recursiveTransform = (list = {}) => {
   if(list && list['next']){
      list['value'] = list['next']['value'];
      list['next'] = list['next']['next'];
      return recursiveTransform(list['next']);
   }else{
      return true;
   };
}
const removeNode = (list = {}, val, curr = list) => {
   // end reached and item not found
   if(!list){
      return false;
   }
   if(list['value'] !== val){
      return removeNode(list['next'], val, list);
   };
   return recursiveTransform(list);
};
console.log(removeNode(list, 3));
console.log(JSON.stringify(list, undefined, 4));

आउटपुट

और कंसोल में आउटपुट होगा -

true
{
   "value": 1,
   "next": {
      "value": 2,
      "next": {
         "value": 4,
         "next": {
            "value": 6,
            "next": {
               "value": 7,
               "next": null
            }
         }
      }
   }
}

  1. जावास्क्रिप्ट में लिंक्ड सूची प्रतिनिधित्व

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

  1. जावास्क्रिप्ट में सर्कुलर के रूप में सिंगल लिंक्ड लिस्ट

    सिंगल लिंक्ड लिस्ट में, अंतिम नोड का अगला पॉइंटर पहले नोड की ओर इशारा करता है।

  1. जावास्क्रिप्ट का उपयोग करके एक डबल लिंक्ड सूची से तत्वों को हटाना

    एक लिंक की गई सूची में किसी तत्व को हटाना बहुत आसान है। हमें बस उस नोड से छुटकारा पाने की जरूरत है जिसे हम हटाना चाहते हैं, यानी उसका संदर्भ खो दें। ऐसे 3 मामले हैं जिन पर हमें विचार करने की आवश्यकता है - सिर से किसी एलीमेंट को हटाना:इस मामले में, हम बस हेड =हेड.नेक्स्ट असाइन कर सकते हैं और अगले एल