What is Abstract data types?


What is abstract data types
Abstract Data types
Abstract Data Types (ADT) वस्तुओं के लिए एक प्रकार (या वर्ग) है जिसका व्यवहार मूल्यों के एक समूह और संचालन के एक समूह द्वारा निर्धारित किया जाता है।

Abstract Data Types Defination में केवल यह बताया गया है कि कौन से ऑपरेशन किए जाने चाहिए, लेकिन यह नहीं कि ये ऑपरेशन कैसे लागू किए जाएंगे। यह इंगित नहीं करता है कि डेटा को मेमोरी में कैसे व्यवस्थित किया जाएगा और संचालन को लागू करने के लिए क्या एल्गोरिदम का उपयोग किया जाएगा।

 इसे "Abstract" कहा जाता है, क्योंकि यह implementation independent view देता है। केवल आवश्यक विवरण प्रदान करने और विवरण को छिपाने की प्रक्रिया को Abstraction के रूप में जाना जाता है।

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

उन्हें कैसे लागू किया जाता है। इस प्रकार, उपयोगकर्ता को केवल यह जानना होगा कि डेटा प्रकार क्या कर सकता है, लेकिन यह नहीं कि इसे कैसे लागू किया जाएगा। 
Abstract Data Types (ADT) को एक ब्लैक बॉक्स के रूप में सोचें जो डेटा प्रकार की आंतरिक संरचना और संरचना को छुपाता है। 


1. List Abstract Data Types(ADT) :

List Abstract data types

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

डेटा नोड में डेटा संरचना के लिए पॉइंटर होता है और एक सेल्फ रेफ़रेंशियल पॉइंटर होता है जो सूची में अगले नोड को इंगित करता है।

//List Abstract Data TypesDefinitions 

List Abstract Data TypesDefinitions


typedef struct node 
 void *DataPtr; 
 struct node *link; 
} Node; 
typedef struct
 int count; 
 Node *pos; 
 Node *head; 
 Node *rear; 
 int (*compare) (void *argument1, void *argument2) 
} LIST;

Abstract Data Types Function की एक सूची नीचे दी गई है:

सूची में एक ही प्रकार के आइटम शामिल हैं, जो क्रमबद्ध क्रम में व्यवस्थित हैं, और सूची में निम्नलिखित संचालन किए जा सकते हैं।
  • get () - किसी भी स्थिति में सूची से एक तत्व लौटाता है।
  • insert ()- सूची में किसी भी स्थिति में एक तत्व डालें।
  • remove () - गैर-रिक्त सूची से किसी भी आइटम की पहली घटना को हटाता है।
  • removeAt () - किसी स्थान को किसी गैर-रिक्त सूची से निर्दिष्ट स्थान पर निकालें।
  • replace () - एक तत्व को किसी भी स्थिति में किसी अन्य तत्व से बदलें।
  • size () -सूची में तत्वों की संख्या लौटाता है।
  • isEmpty () - यदि सूची खाली है तो सही है, अन्यथा गलत है।
  • isFull () - यदि सूची पूर्ण है, तो सत्य है, अन्यथा गलत है।

2. Stack (ADT)

Abstract Data Types(ADT)


प्रत्येक नोड में संग्रहीत डेटा के बजाय Stack (ADT) कार्यान्वयन में, डेटा को सूचक संग्रहीत किया जाता है।
कार्यक्रम डेटा के लिए मेमोरी आवंटित करता है और पता Stack (ADT)  को दिया जाता है।
ADT में हेड नोड और डेटा नोड्स encapsulated  हैं। कॉलिंग फ़ंक्शन केवल पॉइंटर को स्टैक पर देख सकता है।
स्टैक हैडर की संरचना में शीर्ष पर एक सूचक और स्टैक में प्रविष्टियों की संख्या भी होती है।

// Stack Abstract Data Types(ADT)Definitions:

typedef struct node
{
void * DataPtr;
node structure * link;
} StackNode;
typedef struct
{
int count;
Stacknode * top;
} STACK;

स्टैक में एक ही प्रकार के तत्व होते हैं जो क्रमबद्ध क्रम में व्यवस्थित होते हैं।

 सभी ऑपरेशन एक ही छोर पर होते हैं जो स्टैक के ऊपर होता है और निम्नलिखित ऑपरेशन किए जा सकते हैं:
  • push () - स्टैक के एक छोर पर एक तत्व डालें जिसे शीर्ष कहा जाता है।
  • POP() - स्टैक के शीर्ष पर तत्व को निकालें और वापस करें, अगर यह खाली नहीं है।
  • peek() – स्टैक के शीर्ष पर तत्व को बिना हटाए लौटें, यदि स्टैक खाली नहीं है।
  • Size () - स्टैक में तत्वों की संख्या लौटाएं।
  • isEmpty () - यदि स्टैक खाली है तो सही लौटें, अन्यथा झूठे वापस करें।
  • isFull () - स्टैक पूर्ण होने पर वापस लौटें, अन्यथा गलत लौटें।

3. Queue (ADT)

Queue abstract data type(ADT)

Queue abstract data type (ADT), Stack Abstract Data Types के मूल डिज़ाइन का अनुसरण करता है।
प्रत्येक नोड में डेटा के लिए एक शून्य सूचक होता है और  Queue में अगले तत्व के लिए एक लिंक होता है। 

कार्यक्रम डेटा भंडारण के लिए मेमोरी आवंटित करने के लिए जिम्मेदार है।


//Queue abstract data type(ADT)

typedef struct node 
void *DataPtr; 
struct node *next; 
} QueueNode; 
typedef struct
QueueNode *front; 
QueueNode *rear; 
int count; 
} QUEUE; 

एक QUEUE में अनुक्रमिक क्रम में व्यवस्थित एक ही प्रकार के तत्व होते हैं। संचालन दोनों छोर पर होता है, अंत में सम्मिलन किया जाता है और मोर्चे पर विलोपन किया जाता है।

 निम्नलिखित ऑपरेशन किए जा सकते हैं:
  • enqueue () - कतार के अंत में एक तत्व डालें।
  • dequeue () - कतार के पहले तत्व को हटा दें और वापस कर दें, यदि कतार खाली नहीं है।
  • peek() –कतार के तत्व को बिना हटाए वापस कर दें, अगर कतार खाली नहीं है।
  • Size () - कतार में तत्वों की संख्या लौटाएं।
  • sEmpty () - यदि कतार खाली है तो सही लौटें, अन्यथा झूठे वापस करें।
  • isFull () - यदि कतार भरी है तो सही लौटें, अन्यथा झूठे वापस आएँ।

इन परिभाषाओं से, हम स्पष्ट रूप से देख सकते हैं कि परिभाषाएँ यह निर्दिष्ट नहीं करती हैं कि इन ADT का प्रतिनिधित्व कैसे किया जाएगा और संचालन कैसे किया जाएगा। 

ADT को लागू करने के विभिन्न तरीके हो सकते हैं, उदाहरण के लिए, सूची ADT को सरणियों का उपयोग करके या एकल रूप से लिंक की गई सूची या दोगुनी लिंक की गई सूची का उपयोग करके लागू किया जा सकता है। 

इसी तरह, Stack ADT और Queue ADT को सरणियों या लिंक की गई सूचियों का उपयोग करके लागू किया जा सकता है।

Post a comment

0 Comments