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

JavaScript में प्रत्येक नोड के लिए अगला बड़ा नोड खोजना


समस्या

हमें एक JavaScript फ़ंक्शन लिखना है जो लिंक्ड लिस्ट के हेड को पहले और एकमात्र आर्गुमेंट के रूप में लेता है।

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

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

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

JavaScript में प्रत्येक नोड के लिए अगला बड़ा नोड खोजना

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

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. JavaScript Hello World: आपका पहला प्रोग्राम JavaScript Hello World: आपका पहला प्रोग्राम

    यह सुनिश्चित करने के लिए कि आपका Node वर्जन काम करता है, आप जो सबसे पहला प्रोग्राम लिख सकते हैं वह है Hello World प्रोग्राम। प्रोग्राम बनाने के दो तरीके हैं: टर्मिनल में या अपनी पसंद के कोड एडिटर में (यानी Visual Studio Code, Vim, आदि)। शुरू करने के लिए सुनिश्चित करें कि आपके मशीन पर Node इंस्टॉल है

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

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

  1. जावास्क्रिप्ट में प्रत्येक ऑब्जेक्ट के लिए यूनिक ID कैसे बनाएं? जावास्क्रिप्ट में प्रत्येक ऑब्जेक्ट के लिए यूनिक ID कैसे बनाएं?

    प्रत्येक ऑब्जेक्ट के लिए यूनिक ID बनाने के लिए निम्नलिखित कोड है: उदाहरण <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Docum