जावास्क्रिप्ट में एल्गोरिदम और डेटा संरचनाएँ: एक संपूर्ण गाइड

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

जावास्क्रिप्ट (Node.js) में एल्गोरिदम और डेटा संरचनाएँ: शुरुआत से विशेषज्ञ तक



प्रत्येक जावास्क्रिप्ट डेवलपर को देर-सबेर एल्गोरिदम और डेटा संरचनाओं की गहरी समझ की आवश्यकता होती है। चाहे आप React पर फ्रंटएंड लिख रहे हों या Node.js पर बैकएंड, डेटा को कुशलतापूर्वक व्यवस्थित और संसाधित करने का ज्ञान एक महत्वपूर्ण कौशल है। इस लेख में, हम Node.js वातावरण के लिए जावास्क्रिप्ट में व्यावहारिक उदाहरणों के साथ बुनियादी डेटा संरचनाओं और लोकप्रिय एल्गोरिदम पर चर्चा करेंगे।



एल्गोरिदम और डेटा संरचनाएँ क्यों सीखें?



एल्गोरिदम और डेटा संरचनाएँ वह नींव हैं जिस पर कोई भी एप्लिकेशन बनाया जाता है। डेटा संरचना का सही चुनाव प्रोग्राम के निष्पादन को दस गुना तक तेज कर सकता है। उदाहरण के लिए, 10,000 तत्वों वाले ऐरे में किसी तत्व की खोज में 10,000 ऑपरेशन लग सकते हैं, जबकि हैश टेबल में केवल एक ऑपरेशन लगता है। इन सिद्धांतों को समझने से मदद मिलती है:



  • अधिक कुशल कोड लिखना
  • मेमोरी का प्रभावी ढंग से उपयोग करना
  • तकनीकी साक्षात्कार पास करना
  • लोकप्रिय लाइब्रेरी और फ्रेमवर्क की आंतरिक कार्यप्रणाली को समझना


जावास्क्रिप्ट में बुनियादी डेटा संरचनाएँ



ऐरे (Arrays)

ऐरे जावास्क्रिप्ट में सबसे आम डेटा संरचना है। वे तत्वों को अनुक्रमिक क्रम में संग्रहीत करते हैं और O(1) में इंडेक्स द्वारा एक्सेस प्रदान करते हैं। Node.js में, ऐरे डेटा स्ट्रीम के साथ काम करने के लिए विशेष रूप से उपयोगी होते हैं।



// Node.js में ऐरे के साथ काम करने का उदाहरणconst numbers = [5, 2, 9, 1, 5, 6];

// अंत में तत्व जोड़नाnumbers.push(10); // [5, 2, 9, 1, 5, 6, 10]

// अंतिम तत्व हटानाconst last = numbers.pop(); // 10

// तत्व खोजनाconst index = numbers.findIndex(num => num === 9); // 2

// फ़िल्टर करनाconst filtered = numbers.filter(num => num > 5); // [9, 6]

console.log(`फ़िल्टर का परिणाम: ${filtered}`);


स्टैक (Stack)

स्टैक LIFO (लास्ट इन, फर्स्ट आउट) सिद्धांत पर काम करता है। यह उन कार्यों के लिए एक आदर्श संरचना है जहाँ अंतिम जोड़े गए तत्व तक पहुँच की आवश्यकता होती है: क्रिया इतिहास (undo/redo), कोष्ठक जाँच, ग्राफ ट्रैवर्सल।



class Stack {  constructor() {    this.items = [];  }

push(element) { this.items.push(element); }

pop() { if (this.isEmpty()) return null; return this.items.pop(); }

peek() { if (this.isEmpty()) return null; return this.items[this.items.length - 1]; }

isEmpty() { return this.items.length === 0; }

size() { return this.items.length; }}

// उदाहरण: कोष्ठकों की शुद्धता की जाँचfunction isValidParentheses(str) { const stack = new Stack(); const pairs = { '(': ')', '{': '}', '[': ']' };

for (let char of str) { if (pairs[char]) { stack.push(char); } else { const last = stack.pop(); if (pairs[last] !== char) return false; } }

return stack.isEmpty();}

console.log(isValidParentheses("({[]})")); // trueconsole.log(isValidParentheses("({[})")); // false


क्यू (Queue)

क्यू FIFO (फर्स्ट इन, फर्स्ट आउट) सिद्धांत पर काम करता है। यह कार्यों को उनके आने के क्रम में संसाधित करने के लिए अपरिहार्य है: टास्क शेड्यूलर, मैसेज क्यू, BFS (ब्रेड्थ-फर्स्ट सर्च)।



class Queue {  constructor() {    this.items = {};    this.front = 0;    this.rear = 0;  }

enqueue(element) { this.items[this.rear] = element; this.rear++; }

dequeue() { if (this.isEmpty()) return null; const item = this.items[this.front]; delete this.items[this.front]; this.front++; return item; }

isEmpty() { return this.front === this.rear; }

size() { return this.rear - this.front; }}

// उदाहरण: प्रिंट क्यू का सिमुलेशनconst printQueue = new Queue();printQueue.enqueue("document1.pdf");printQueue.enqueue("document2.pdf");printQueue.enqueue("photo.jpg");

while (!printQueue.isEmp

ब्लॉग

पुस्तक अनुशंसाएँ