जब प्रोग्रामर "डेटा संरचनाओं" के बारे में बात करते हैं, तो वे किस बात का जिक्र कर रहे हैं?


18

जब प्रोग्रामर "डेटा संरचनाओं" के बारे में बात करते हैं, तो क्या वे केवल सार डेटा प्रकारों जैसे सूचियों , पेड़ों , हैश , ग्राफ़ आदि के बारे में बात कर रहे हैं ?

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

मैंने केवल सुना है कि प्रोग्रामर जटिल डेटा संरचनाओं या सार डेटा प्रकारों को संदर्भित करने के लिए शब्द का उपयोग करते हैं, हालांकि डेटा संरचनाओं की एक सूची प्रदान करने वाले विकिपीडिया लेख में परिभाषा में समग्र प्रकार और आदिम प्रकार शामिल हैं, जो कि मुझे उम्मीद नहीं है (यहां तक ​​कि हालांकि इसका कोई मतलब नहीं है)।

जब मैं ऑनलाइन देख रहा हूँ, तो मैं अन्य स्थानों को देख रहा हूँ, जो "डेटा संरचना" शब्द को प्रोग्रामिंग अर्थों में संदर्भित करते हैं, केवल सार डेटा प्रकारों का उल्लेख करते हैं, जैसे कि स्टनी ब्रुक विश्वविद्यालय के कंप्यूटर विज्ञान विभाग का यह व्याख्यान जिसमें कहा गया है

डेटा संरचना एक विशेष अमूर्त डेटा प्रकार का वास्तविक कार्यान्वयन है।

या यह डेटा संरचनाओं पर विकीबूक है , जो इस तरह से वाक्यों में शब्द का उपयोग करता है:

क्योंकि डेटा संरचनाएं उच्च-स्तरीय अमूर्तताएं हैं, वे हमारे लिए डेटा के समूहों पर कार्रवाई पेश करते हैं, जैसे कि किसी सूची में कोई आइटम जोड़ना या कतार में सर्वोच्च-प्राथमिकता वाला आइटम देखना।

जब मैं "डेटा संरचना" शब्द का उपयोग करता हूं तो मैं केवल जटिल डेटा संरचनाओं या अमूर्त डेटा प्रकारों का जिक्र करने वाले प्रोग्रामर को कभी क्यों सुनता हूं? क्या प्रोग्रामर की डिक्शनरी की परिभाषा के लिए शब्द की एक अलग परिभाषा है?


1
यह शब्द समय के साथ विकसित हुआ। CS भीड़ सामान्य रूप से सामान्य प्रकार की संरचनाओं के लिए शब्द का उपयोग करती है जो संबंधित डेटा (लिंक की गई सूची, पेड़ आदि ...) की कई वस्तुओं को धारण कर सकती हैं
Oded

1
यह सिर्फ एक शब्दावली बात नहीं है? एक स्ट्रिंग वास्तव में वर्णों की एक सरणी है, और यह एक डेटा संरचना है जो व्यक्तिगत चरचाओं के अनुक्रम का प्रतिनिधित्व करती है
मिथिर

3
"डेटा संरचना" एक स्व-परिभाषित शब्द नहीं है? यह डेटा संग्रहीत करने के लिए कोई संरचना है! प्रश्न को गंभीरता से लेना कठिन है।
माइकल के

1
@Rachel तो आपका प्रश्न वास्तव में यह है कि क्या आदिम डेटा प्रकार डेटा संरचनाएं हैं या नहीं? if programmers mean something different when they talk about data structuresहालांकि अभी भी मतों के लिए मतदान हो रहा है।
यनीस

2
"आदिम" पूरी तरह से दायरे पर निर्भर करता है। बाइनरी स्तर पर उदाहरण के लिए, इंट जैसी कोई चीज नहीं है। निचले स्तर पर भी बिट्स नहीं हैं - बस विद्युत पूर्वाग्रह। फिर, यह एक आत्म-परिभाषित शब्द है - एक अच्छा सवाल नहीं है।
माइकल के

जवाबों:


20

"डेटा संरचना" की सामान्य परिभाषा कुछ भी है जो आपके डेटा को संरचित तरीके से पकड़ सकती है, इसलिए हाँ इसमें सार डेटा प्रकारों के अलावा समग्र प्रकार और आदिम प्रकार शामिल होंगे। उदाहरण के लिए, एक stringडेटा संरचना है क्योंकि यह एक संरचित तरीके से वर्णों के अनुक्रम को पकड़ सकता है।

हालाँकि, इस शब्द का एक और अर्थ प्रोग्रामर्स से भी है।

चूंकि "डेटा स्ट्रक्चर्स" शब्द इतना व्यापक है, इसलिए आमतौर पर डेवलपर यह जानने के लिए अधिक विशिष्ट शब्द का उपयोग करते हैं कि वे किस बारे में बात कर रहे हैं, जैसे कि classया data objectया primitive type, और सबसे जटिल या अमूर्त डेटा प्रकारों के लिए प्रयुक्त विशिष्ट शब्द "डेटा संरचना" है

यही कारण है कि आप "डेटा संरचना" सुनते हैं, जिसका उपयोग अक्सर एब्स, लिस्ट, ट्री और हैशबेल जैसे अमूर्त डेटा प्रकारों के लिए किया जाता है, न कि आदिम डेटा प्रकारों जैसी चीजों के लिए


4
मुझे लगता है कि रेखांकन बहुत आम हैं, लेकिन वे केवल मानक पुस्तकालयों में शायद ही कभी प्रतिनिधित्व करते हैं क्योंकि वे एक सामान्य और कुशल तरीके से निर्माण करना बहुत कठिन हैं।
Klaim

इसलिए जब प्रोग्रामर "डेटा संरचनाओं" के बारे में बात करते हैं, तो वे आमतौर पर अमूर्त डेटा प्रकारों के बारे में बात कर रहे हैं ? और यद्यपि आदिम प्रकार (जैसे इंट, बूल, या चार) और मिश्रित प्रकार (जैसे एक वर्ग, संरचना, या एनम) को अभी भी प्रोग्रामर द्वारा डेटा संरचना माना जाता है, उन्हें आमतौर पर अलग-अलग शब्दों द्वारा संदर्भित किया जाता है?
राचेल

1
@ रैशेल तकनीकी रूप से एक डेटा स्ट्रक्चर पॉइंटर्स / क्लासेस एक्ट का भी उपयोग करके एक होमब्रेव्ड कार्यान्वयन हो सकता है। मैंने C ++ होमवर्क असाइनमेंट के भाग के समान सूचियों के समान कुछ बहुत ही बदसूरत "डेटा संरचनाएं" बनाईं। हम अक्सर कक्षाओं डेटा संरचनाओं को नहीं कहते हैं क्योंकि वे आमतौर पर कुछ अधिक विशिष्ट होते हैं।
बेन ब्रोका

@BenBrocka अहह तो "डेटा संरचना" एक बहुत व्यापक शब्द है जो इन अन्य वस्तुओं को कवर करता है, हालांकि डेटा संरचनाओं के बारे में बात करते समय इसका आम तौर पर बेहतर होना आवश्यक है और इसके बजाय "आदिम डेटा प्रकार" या "डेटा ऑब्जेक्ट" जैसे शब्दों का उपयोग करना है। "डेटा संरचना"। और वस्तुओं के लिए आमतौर पर इस्तेमाल किया विशिष्ट शब्द की तरह है Lists, Trees, Graphs, आदि बस "डेटा संरचनाओं" होता है
राहेल

1
@Rachel हाँ, भले ही सब कुछ एक डेटा संरचना है (कड़ाई से बोलते हुए) शब्द 'डेटा संरचना' आमतौर पर उन सार डेटा प्रकारों को संदर्भित करता है। मैं एक डेवलपर के दृष्टिकोण से 'डेटा संरचना' शब्द कहता हूं कि वह डेटा को कैसे संग्रहीत कर रहा है। यह एक मेमोरी लिस्ट में हो सकता है, डिस्क में एक फ़ाइल या एक कस्टम डेटा संरचना हो सकती है जिसे उसने खुद लागू किया था।
एलेक्स

5

यह शब्द दोनों को संदर्भित करता है, हालांकि चीजें जैसी हैं intsऔर booleansआमतौर पर आदिम डेटा प्रकार (या आदिम डेटा संरचना) मानी जाती हैं। शब्द ही एक ऐसी चीज़ को संदर्भित करता है जो डेटा को विशिष्ट तरीके से संग्रहीत करता है। निश्चित रूप intसे इस परिभाषा को पूरा करता है और साथ ही साथ एक हैश टेबल जैसा कुछ है, केवल यह सरल है।

आमतौर पर, जब लोग डेटा संरचना का उपयोग करते हैं, तो वे अधिक जटिल डेटा संरचनाओं को संदर्भित करते हैं, और सरल नहीं, लेकिन दोनों परिभाषा को पूरा करते हैं।


2
मुझे नहीं लगता कि मैंने कभी किसी को int"डेटा संरचना" के रूप में संदर्भित किया है ।
क्वर्टी

2
@ क्वर्टी मुझे न तो, लेकिन यह अभी भी है कि यह क्या है। इसे "डेटा प्रकार" अधिक बार कहा जाता है, लेकिन यह बहुत ज्यादा "डेटा संरचना" के समान है
ओलेक्सी

0

सबसे सरल और बहुत ही मूल परिभाषा, जिसे मैंने कभी डेटा संरचनाओं के बारे में सुना है, डेटा को मेमोरी में इस तरह से संग्रहीत कर रहा है कि समय और मेमोरी के संदर्भ में एक कुशल संचालन जैसे कि इन्सर्ट, अपडेट, डिलीट आदि को एक कुशल तरीके से किया जा सकता है।

तो, एक डेटा प्रकार उस डेटा के प्रकार को बताता है जिसे हमने इसमें संग्रहीत किया है। यह पूर्णांक, दशमलव, वर्ण, स्ट्रिंग या एक ऑब्जेक्ट हो सकता है। यह अमूर्त डेटा प्रकारों के अलावा मिश्रित प्रकार या आदिम प्रकार हो सकता है।

लेकिन, हम डेटा संरचनाओं का उपयोग तब करते हैं जब हम मेमोरी में किसी भी जटिल डेटा को स्टोर करना चाहते हैं। यही कारण है कि हम केवल Arrays, Lists, Trees और Hashtables जैसे डेटा प्रकारों के बारे में सुनते हैं, न कि आदिम डेटा प्रकारों जैसी चीज़ों के लिए

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.