data-structuresडेटा-स्ट्रक्चर्स के साथ शुरुआत करना


टिप्पणियों

यह अनुभाग डेटा-संरचना क्या है, और एक डेवलपर इसे क्यों उपयोग करना चाहता है, इसका अवलोकन प्रदान करता है।

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

एरे: ए सिंपल डेटा स्ट्रक्चर

एक Array Data Structure का उपयोग मेमोरी के एक सन्निहित ब्लॉक में समान ऑब्जेक्ट्स (या डेटा वैल्यू) को स्टोर करने के लिए किया जाता है। Array Data Structure का निश्चित आकार होता है, जो उन डेटा मानों की संख्या निर्धारित करता है जिन्हें इसमें संग्रहीत किया जा सकता है।


सरणी: C ++ वे

C ++ प्रोग्रामिंग लैंग्वेज में हम स्टैटिक ऐरे को फॉलो के रूप में घोषित कर सकते हैं

int arrayName[100];
 

यहाँ हमने "arrayName" के नाम से एक ऐरे को घोषित किया है, जो 100 मान तक संग्रहीत कर सकता है, जो सभी एक ही प्रकार के हैं, जो एक पूर्णांक है।

अब, हम इस डेटा संरचना के कुछ फायदे और नुकसान पर चर्चा करेंगे

  1. हम लगातार समय में Array में संग्रहीत Data Values तक पहुँच सकते हैं, यही समय जटिलता O (1) है । इसलिए यदि हम i-th स्थिति में संग्रहीत डेटा मान तक पहुंचना चाहते हैं, तो हमें प्रारंभिक स्थिति से शुरू करने और i-th स्थिति तक जाने की आवश्यकता नहीं है, लेकिन हम सीधे i-th स्थिति में कूद सकते हैं जिससे कंप्यूटिंग समय की बचत हो सकती है।
  2. एक सरणी के बीच में एक तत्व सम्मिलित करना एक कुशल कार्य नहीं है। मान लीजिए कि हम i-th स्थिति में एक नया तत्व जोड़ना चाहते हैं, तो हमें नए तत्व के लिए स्थान बनाने के लिए पहले सभी तत्वों को (i-th) और (i + 1 th) स्थान पर ले जाने की आवश्यकता है। उदाहरण: 1 4 2 0 4 तत्वों के साथ एक सरणी है, अब हम 3 को 2 की स्थिति में सम्मिलित करना चाहते हैं फिर हमें 4,2 को स्थानांतरित करना होगा और 3 के लिए स्थान बनाने के लिए 0 स्थिति को आगे बढ़ाना होगा।
  1 3 4 2 0
 
  1. तत्व के सम्मिलन के समान, एक सरणी में i-th स्थिति से एक तत्व को हटाना भी कुशल नहीं है क्योंकि हमें हटाए गए रिक्त स्थान को भरने के लिए हटाए गए तत्व को 1 ब्लॉक से आगे ले जाने की आवश्यकता है। तत्व।

ये एक ऐरे की 3 सरल विशेषताएँ हैं, यहाँ आप यह मान सकते हैं कि एरे एक कुशल डेटा संरचना नहीं है, लेकिन व्यवहार में, एक सरणी का लाभ इसके लाभ को कम कर सकता है। यह काफी हद तक उस तरह के उद्देश्य पर निर्भर करता है जिसे आप सेवा करना चाहते हैं, यह संभव हो सकता है कि आप तत्व को सम्मिलित या हटाना नहीं चाहते हैं जितनी बार आप उन्हें एक्सेस करना चाहते हैं, उस स्थिति में, एक सरणी एक बिल्कुल सही डेटा संरचना है।

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

डेटा संरचनाओं के लिए परिचय

डेटा संरचना सूचना को व्यवस्थित और संग्रहीत करने का एक तरीका है।

एक "नमस्ते, विश्व!" स्ट्रिंग वह सूचना हो जिसे हमें बाइट-एड्रेसेबल मेमोरी में व्यवस्थित और संग्रहीत करने की आवश्यकता हो।

प्रत्येक ASCII वर्ण को 7 बिट्स संग्रहण की आवश्यकता होती है। अधिकांश प्रणालियाँ प्रत्येक वर्ण के लिए 8 बिट्स (1 बाइट) आरक्षित करती हैं, इसलिए प्रत्येक वर्ण "हैलो, वर्ल्ड!" मेमोरी के एक अलग बाइट-आकार की इकाई में संग्रहीत किया जाता है, एक के बाद एक, लगातार।

हमें अपनी स्ट्रिंग के लिए एक एकल संदर्भ की आवश्यकता है, भले ही यह कई मेमोरी एड्रेस को फैलाए, इसलिए हम स्ट्रिंग में पहले वर्ण के पते का उपयोग करते हैं, 'H'। शून्य वर्णों का उपयोग करके उस वर्ण के सूचकांक 'H' + के पते पर हर दूसरे वर्ण तक पहुँचा जा सकता है।

हम अपनी स्ट्रिंग प्रिंट करना चाहते हैं, "हैलो, वर्ल्ड!" हम स्मृति में इसके पते को जानते हैं, जिसे हम प्रिंट फ़ंक्शन को आपूर्ति करते हैं, लेकिन प्रिंट फ़ंक्शन लगातार मेमोरी स्थानों को प्रिंट करना कैसे जानता है? एक सामान्य तरीका यह है कि स्ट्रिंग के लिए अशक्त वर्ण, '\ 0' को जोड़ा जाए। जब प्रिंट फ़ंक्शन नल वर्ण का सामना करता है, तो यह जानता है कि यह स्ट्रिंग के अंत तक पहुंच गया है।

हमने अपनी स्ट्रिंग यानी डेटा संरचना को व्यवस्थित और संग्रहीत करने का एक तरीका परिभाषित किया है! यह बहुत ही सरल डेटा संरचना एक अशक्त-वर्ण वर्ण सरणी है, जो एक स्ट्रिंग को व्यवस्थित और संग्रहीत करने का एक तरीका है।