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

जावास्क्रिप्ट में प्रत्येक नोड के लिए अगला बड़ा नोड ढूँढना

<घंटा/>

समस्या

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

इस लिंक्डलिस्ट में संख्यात्मक डेटा है। सूची में प्रत्येक नोड का अगला बड़ा मान हो सकता है:node_i के लिए, next_larger(node_i) node_j.val है जैसे कि j> i, node_j.val> node_i.val, और j सबसे छोटा संभव विकल्प है। यदि ऐसा j मौजूद नहीं है, तो अगला बड़ा मान 0 है।

हमारे फ़ंक्शन को एक सरणी तैयार करनी चाहिए और वापस करनी चाहिए जिसमें संबंधित तत्व सूची में तत्व के लिए अगला बड़ा तत्व है।

उदाहरण के लिए, यदि सूची है -

जावास्क्रिप्ट में प्रत्येक नोड के लिए अगला बड़ा नोड ढूँढना

तब आउटपुट होना चाहिए -

const output = [7, 0, 5, 5, 0];

आउटपुट स्पष्टीकरण:

क्योंकि 2 का अगला बड़ा तत्व 7 है, 7 के लिए कोई बड़ा तत्व नहीं है, इत्यादि।

उदाहरण

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

class Node{
   constructor(data){
      this.data = data;
      this.next = null;
   };
};
class LinkedList{
   constructor(){
      this.head = null;
      this.size = 0;
   };
};
LinkedList.prototype.add = function(data){
   const newNode = new Node(data);
   let curr
   if(this.head === null){
      this.head = newNode;
   }else{
      curr = this.head;
      while (curr.next) {
         curr = curr.next;
      }
      curr.next = newNode;
   };
   this.size++;
};
const list = new LinkedList();
list.add(2);
list.add(7);
list.add(4);
list.add(3);
list.add(5);
const nextGreater = (head) => {
   const arr = [];
   const res = [];
   let curr = head;
   let currentIndex = 0
   while(curr){
      while (arr.length > 0 && curr.data > arr[arr.length - 1][1]) {
         const [index] = arr.pop();
         res[index] = curr.data;
      };
      arr.push([currentIndex, curr.data]);
      currentIndex += 1;
      curr = curr.next;
   };
   for(let i = 0; i < currentIndex; i++){
      if(res[i] === undefined){
         res[i] = 0;
      };
   };
   return res;
};
console.log(nextGreater(list.head));

आउटपुट

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

[ 7, 0, 5, 5, 0 ]

  1. जावास्क्रिप्ट - हैलो वर्ल्ड

    यह सुनिश्चित करने के लिए कि आपका नोड संस्करण काम करता है, सबसे पहले कार्यक्रमों में से एक हैलो वर्ल्ड प्रोग्राम है। प्रोग्राम बनाने के दो तरीके हैं:टर्मिनल में या अपनी पसंद के कोड एडिटर में (यानी विजुअल स्टूडियो कोड, विम, आदि)। सुनिश्चित करें कि आरंभ करने के लिए आपने अपनी मशीन पर नोड स्थापित किया है

  1. जावास्क्रिप्ट में बाइनरी ट्री

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

  1. कैसे जावास्क्रिप्ट में प्रत्येक वस्तु के लिए एक अद्वितीय आईडी बनाने के लिए?

    निम्नलिखित प्रत्येक वस्तु के लिए एक अद्वितीय आईडी बनाने के लिए कोड है - उदाहरण <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>