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

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

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

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

C# में एल्गोरिदम और डेटा संरचनाएँ: कुशल .NET कोड की नींव

.NET प्लेटफॉर्म पर आधुनिक डेवलपमेंट में, उच्च प्रदर्शन और स्केलेबल एप्लिकेशन बनाने के लिए एल्गोरिदम और डेटा संरचनाओं का ज्ञान एक अनिवार्य कौशल है। चाहे आप ASP.NET Core पर वेब सेवाएँ लिख रहे हों, WPF पर डेस्कटॉप एप्लिकेशन, या Xamarin पर मोबाइल समाधान, डेटा संरचना का सही चुनाव सीधे प्रोग्राम की गति और मेमोरी खपत को प्रभावित करता है। इस लेख में, हम C# भाषा में प्रमुख डेटा संरचनाओं और एल्गोरिदम का विश्लेषण करेंगे, प्रत्येक अनुभाग को व्यावहारिक कोड उदाहरणों के साथ प्रस्तुत करेंगे।



1. C# में बुनियादी डेटा संरचनाएँ: arrays और lists

सबसे बुनियादी से शुरू करते हैं। C# में कलेक्शन संग्रहीत करने के लिए कई अंतर्निहित प्रकार हैं, और उनकी आंतरिक कार्यप्रणाली को समझना महत्वपूर्ण है।



Arrays (Array)

Array एक ही प्रकार के तत्वों का एक निश्चित अनुक्रम है। यह इंडेक्स द्वारा सबसे तेज़ पहुँच प्रदान करता है (O(1)), लेकिन निर्माण के बाद आकार बदलने की अनुमति नहीं देता है।

int[] numbers = new int[5] { 10, 20, 30, 40, 50 };// इंडेक्स द्वारा पहुँचint thirdElement = numbers[2]; // 30// तत्व बदलनाnumbers[3] = 100;

Arrays का उपयोग तब करें जब तत्वों की संख्या पहले से ज्ञात हो और बदले नहीं (जैसे, स्थिरांक या निश्चित बफर संग्रहीत करने के लिए)।



List<T>

List<T> एक डायनामिक array है। यह नए तत्व जोड़ने पर स्वचालित रूप से विस्तारित होता है। आंतरिक रूप से, यह एक सामान्य array का उपयोग करता है, जो क्षमता पार होने पर पुनः बनाया जाता है।

List<string> fruits = new List<string>();fruits.Add("सेब");fruits.Add("केला");fruits.Add("संतरा");Console.WriteLine(fruits.Count); // 3fruits.RemoveAt(1); // "केला" हटाएँ

List<T> अधिकांश कार्यों के लिए एक सार्वभौमिक विकल्प है जहाँ अनुक्रमिक पहुँच और कलेक्शन के आकार में बार-बार बदलाव की आवश्यकता होती है।



2. Stack और Queue: LIFO और FIFO सिद्धांत

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



Stack<T>

Stack "अंतिम आया, पहला गया" (LIFO) सिद्धांत पर काम करता है। .NET में, stack एक सार्वभौमिक कलेक्शन के रूप में कार्यान्वित है।

Stack<int> stack = new Stack<int>();stack.Push(1);stack.Push(2);stack.Push(3);

int top = stack.Pop(); // 3int peek = stack.Peek(); // 2 (बिना हटाए)

वास्तविक उदाहरण: स्ट्रिंग में कोष्ठकों की शुद्धता की जाँच करना या ब्राउज़र में "पीछे" बटन लागू करना।



Queue<T>

Queue "पहला आया, पहला गया" (FIFO) सिद्धांत का पालन करता है। यह कार्यों को उनके आगमन के क्रम में संसाधित करने के लिए एक आदर्श विकल्प है।

Queue<string> queue = new Queue<string>();queue.Enqueue("कार्य 1");queue.Enqueue("कार्य 2");queue.Enqueue("कार्य 3");

string task = queue.Dequeue(); // "कार्य 1"string nextTask = queue.Peek(); // "कार्य 2"

Queues का उपयोग Producer-Consumer पैटर्न, संदेश प्रसंस्करण और लॉगिंग सिस्टम में सक्रिय रूप से किया जाता है।



3. C# में Trees और रिकर्सिव एल्गोरिदम

Trees पदानुक्रमिक संरचनाएँ हैं जहाँ प्रत्येक नोड में कई चाइल्ड नोड हो सकते हैं। Binary Search Trees (BST) एक विशेष स्थान रखते हैं, जो तेज़ खोज, सम्मिलन और विलोपन प्रदान करते हैं (औसतन O(log n))।



Binary Search Tree का कार्यान्वयन

public class TreeNode{    public int Value;    public TreeNode Left;    public TreeNode Right;

public TreeNode(int value) { Value = value; }}

public class BinarySearchTree{ public TreeNode Root;

public void Insert(int value) { Root = InsertRec(Root, value); }

private TreeNode InsertRec(TreeNode root, int value) { if (root == nu

ब्लॉग

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