प्रोग्रामिंग में डेटा टाइप उस डेटा के प्रकार और प्रकृति को दर्शाता है जिसे उपयोगकर्ता द्वारा उपयोग करने का इरादा होता है। यह वह डेटा टाइप है जिसे कंपाइलर या इंटरप्रेटर संभालता है और मेन मेमोरी में संबंधित स्टोरेज लोकेशन प्रदान करता है। अब डेटा स्टोर करने के लिए हमने डेटा की प्रकृति के आधार पर विभिन्न डेटा संरचनाएं (Data Structures) पेश की हैं। चूंकि डेटा मुख्य रूप से रैखिक (Linear) और गैर-रैखिक (Nonlinear) वर्ग में वर्गीकृत होता है, इसलिए विशेष रूप से गैर-रैखिक डेटा के लिए ग्राफ (Graph) और ट्री (Tree) की अवधारणा है जो ऐसे डेटा को बेहतर समझ के लिए प्रस्तुत करते हैं।
चूंकि ग्राफ और ट्री दोनों गैर-रैखिक डेटा का प्रतिनिधित्व करते हैं, इसलिए उनमें कुछ समान विशेषताएं हैं क्योंकि दोनों में नोड्स (Nodes) और एज (Edges) शामिल होते हैं, लेकिन फिर भी उनमें कुछ अंतर हैं जो नीचे सूचीबद्ध हैं।
ग्राफ और ट्री के बीच महत्वपूर्ण अंतर निम्नलिखित हैं:
| क्रमांक | पैरामीटर | ग्राफ (Graph) | ट्री (Tree) |
|---|---|---|---|
| 1 | परिभाषा (Definition) | ग्राफ गैर-रैखिक डेटा का चित्रमय प्रतिनिधित्व है जहां डेटा को नोड्स द्वारा दर्शाया जाता है और उनके बीच संबंध को जोड़ने वाले पथ द्वारा दर्शाया जाता है जिसे एज (Edge) कहते हैं। | दूसरी ओर ट्री का उपयोग गैर-रैखिक डेटा को पदानुक्रम (Hierarchy) के संदर्भ में प्रस्तुत करने के लिए किया जाता है जहां डेटा को फिर से नोड द्वारा दर्शाया जाता है और उसका उत्तराधिकारी डेटा ठीक नीचे वाले नोड द्वारा दर्शाया जाता है जिसे चाइल्ड नोड (Child Node) कहा जाता है। |
| 2 | कार्यान्वयन (Implementation) | गैर-रैखिक डेटा के प्रतिनिधित्व के लिए ग्राफ को इस तरह लागू किया जाता है कि नोड्स जुड़े भी हो सकते हैं और नहीं भी, या यहां तक कि नोड्स के बीच सेल्फ-लूप (Self-loops) भी हो सकते हैं ताकि डेटा के बीच संबंध दर्शाया जा सके। | दूसरी ओर ट्री को इस तरह लागू किया जाता है कि प्रत्येक नोड का अपना पैरेंट होना चाहिए सिवाय पैरेंट या पहले नोड के और यह किसी अन्य नोड से जुड़ा होना चाहिए यानी कोई नोड अन्य नोड के बिना मौजूद नहीं रह सकता। साथ ही ट्री में लूप या सेल्फ-लूप की कोई संभावना नहीं होती क्योंकि डेटा प्रतिनिधित्व पदानुक्रमित प्रकृति का होता है। |
| 3 | डेटा खोज (Data Searching) | चूंकि ग्राफ में सेल्फ-लूप हो सकते हैं इसलिए ट्रैवर्सल दृष्टिकोण से डेटा खोजना मुश्किल होता है। उपयोगकर्ता को वांछित डेटा तक पहुंचने के लिए डॉट्स कनेक्ट करने पड़ते हैं। | दूसरी ओर ट्री के मामले में डेटा को नोड्स के रूप में दर्शाया जाता है जो पदानुक्रमित तरीके से जुड़े होते हैं इसलिए उपयोगकर्ता के लिए ट्री के विशेष स्तर पर वांछित डेटा खोजने के लिए ट्रैवर्सल खोज संभव होती है। |
| 4 | पैरेंट-चाइल्ड संबंध (Parent Child Relation) | चूंकि ग्राफ डेटा को पदानुक्रमित तरीके से प्रस्तुत नहीं करता इसलिए डेटा प्रतिनिधित्व में कोई पैरेंट-चाइल्ड संबंध नहीं होता, इसलिए ग्राफ के मामले में ऐसा कोई पैरेंट नोड या चाइल्ड नोड मौजूद नहीं होता। | दूसरी ओर ट्री के मामले में डेटा पदानुक्रमित तरीके से प्रस्तुत होता है इसलिए नोड्स के बीच पैरेंट-टू-चाइल्ड संबंध मौजूद होता है और हां, ट्री के मामले में पैरेंट नोड के साथ-साथ चाइल्ड नोड भी मौजूद होते हैं। |
| 5 | वाइस वर्सा (Vice e Versa) | ग्राफ के मामले में हम कह सकते हैं कि सभी ग्राफ ट्री नहीं होते। | दूसरी ओर ट्री के मामले में हम कह सकते हैं कि सभी ट्री ग्राफ होते हैं। |
| 6 | उपयोग (Usage) | ग्राफ का मुख्य उपयोग कलरिंग (Colouring) और जॉब शेड्यूलिंग (Job Scheduling) में है। | दूसरी ओर ट्री का मुख्य उपयोग सॉर्टिंग (Sorting) और ट्रैवर्सिंग (Traversing) के लिए है। |