डेटा संरचना ट्री और ग्राफ़ के बीच अंतर क्या है?


139

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

जवाबों:


150

ट्री एक ग्राफ का एक प्रतिबंधित रूप है।

पेड़ों में दिशा (माता-पिता / बच्चे के रिश्ते) होते हैं और चक्र नहीं होते हैं। वे डायरेक्टेड एसाइक्लिक ग्राफ्स (या डीएजी) की श्रेणी में आते हैं। तो पेड़ प्रतिबंध के साथ DAG हैं कि एक बच्चा केवल एक माता-पिता हो सकता है।

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

रेखांकन आम तौर पर पहले चौड़ाई या गहराई की खोज की जाती है। यही बात ट्री पर भी लागू होती है।


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

7
@ user785287 केंद्रीयकृत मानचित्र प्रतिनिधित्व से आपका क्या मतलब है ?
गीक

36
"पेड़ एक पुनरावर्ती डेटा संरचना नहीं हैं" भ्रामक और गलत है। एक पेड़ को गैर-पुनरावर्ती डेटा संरचना (उदाहरण के लिए किनारों की एक सरणी; एक पूर्ण पेड़, जैसे कि एक बाइनरी हीप को अंतर्निहित किया जा सकता है, को एक सरणी में बहुत कॉम्पैक्ट रूप से दर्शाया जा सकता है; अन्य रसीद प्रतिनिधित्व आदि); लेकिन शायद उनका प्रतिनिधित्व करने का सबसे लोकप्रिय और उपयोगी तरीका एक पुनरावर्ती सूचक-आधारित संरचना का उपयोग करना है। निरूपित पेड़ों के लिए प्रतिनिधित्व अद्वितीय नहीं है, लेकिन यह सारहीन है।
j_random_hacker

2
काफी नहीं। ट्री की दिशा जरूरी नहीं है। en.wikipedia.org/wiki/Tree_(graph_theory) दिशा के बिना एक पेड़ का एक उदाहरण दिखाता है। इनका उपयोग अक्सर जैविक संदर्भों में किया जाता है।
मीकल पाल्सीवस्की

2
@ harshpatel991 पेड़ों को इस अर्थ में निर्देशित नहीं किया गया है कि: "एक्स और वाई एक माता-पिता के बच्चे के संबंध में हैं" एक दिशा नहीं है। हालांकि व्यक्तिगत संबंध, "X, Y का बच्चा है" और "Y, X का बच्चा है", निर्देशित संबंध हैं। दिशा इंगित करती है कि बस; 'आंदोलन' की दिशा। पेड़ों में दिशा के विचार की वास्तव में आवश्यकता नहीं है जब तक कि यह सार्थक नहीं है (जो कि पेड़ों के साथ सबसे अधिक बार होता है)। मैं इसे कम से कम कैसे देखता हूं।
कोस्तास मोरातिदिस

105

समझाने के बजाय मैं इसे चित्रों में दिखाना पसंद करता हूं।

वास्तविक समय में एक पेड़

वास्तविक समय में एक पेड़

वास्तविक जीवन में एक ग्राफ का उपयोग करें

एक वास्तविक समय ग्राफ

हाँ, एक मानचित्र को एक ग्राफ डेटा संरचना के रूप में देखा जा सकता है।

उन्हें इस तरह देखना जीवन को आसान बनाता है। पेड़ों का उपयोग उन स्थानों पर किया जाता है जहां हम जानते हैं कि प्रत्येक नोड में केवल एक माता-पिता हैं। लेकिन रेखांकन में कई पूर्ववर्तियों हो सकते हैं (शब्द अभिभावक आमतौर पर रेखांकन के लिए उपयोग नहीं किए जाते हैं)।

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

इलेक्ट्रिकल सर्किट आरेख, एक घर, कंप्यूटर नेटवर्क या एक नदी प्रणाली की योजना रेखांकन के कुछ और उदाहरण हैं। कई वास्तविक दुनिया उदाहरणों को रेखांकन माना जा सकता है।

तकनीकी आरेख इस तरह हो सकता है

पेड़:

यहां छवि विवरण दर्ज करें

ग्राफ़:

यहां छवि विवरण दर्ज करें

नीचे दिए गए लिंक को देखें। वे पेड़ों और रेखांकन पर आपके सभी सवालों के जवाब देंगे।

संदर्भ:

  1. http://www.introprogramming.info/english-intro-csharp-book/read-online/chapter-17-trees-and-graphs/#_Toc362296541

  2. http://www.community-of-knowledge.de/beitrag/data-trees-as-a-means-of-presenting-complex-data-analysis/

  3. विकिपीडिया


7

अन्य उत्तर उपयोगी हैं, लेकिन वे प्रत्येक के गुणों को याद कर रहे हैं:

ग्राफ़

अप्रत्यक्ष ग्राफ़, छवि स्रोत: विकिपीडिया

निर्देशित ग्राफ, छवि स्रोत: विकिपीडिया

  • कोने (या नोड्स) के एक सेट और किनारों के एक समूह से मिलकर जो उनमें से कुछ या सभी को जोड़ता है
  • कोई भी किनारा किसी भी दो छोरों को जोड़ सकता है जो पहले से ही एक समान किनारे से नहीं जुड़े हैं (उसी दिशा में, निर्देशित ग्राफ के मामले में)
  • कनेक्ट करने की आवश्यकता नहीं है (किनारों को सभी कोने एक साथ कनेक्ट करने की आवश्यकता नहीं है): एकल ग्राफ़ में कोने के कुछ डिस्कनेक्ट किए गए सेट शामिल हो सकते हैं
  • निर्देशित या अप्रत्यक्ष किया जा सकता है (जो कि ग्राफ़ के सभी किनारों पर लागू होगा)
    प्रति के अनुसार विकिपीडिया :

    उदाहरण के लिए, यदि कोने एक पार्टी में लोगों का प्रतिनिधित्व करते हैं, और दो लोगों के बीच एक बढ़त है यदि वे हाथ मिलाते हैं, तो यह ग्राफ़ अप्रत्यक्ष है क्योंकि कोई भी व्यक्ति A किसी व्यक्ति B से हाथ मिला सकता है, यदि B भी A के साथ हाथ मिलाता है। इसके विपरीत, यदि कोई व्यक्ति A से B तक का कोई किनारा A, A के B से मेल खाता है, तो यह ग्राफ़ निर्देशित है, क्योंकि प्रशंसा आवश्यक नहीं है।

पेड़

चित्र स्रोत: विकिपीडिया

  • एक प्रकार का ग्राफ
  • कार्यक्षेत्रों को आमतौर पर "नोड्स" कहा जाता है
  • किनारों को निर्देशित किया जाता है और एक "का बच्चा है" (या "माता-पिता") रिश्ते का प्रतिनिधित्व करते हैं
  • प्रत्येक नोड (रूट नोड को छोड़कर) में वास्तव में एक माता-पिता (और शून्य या अधिक बच्चे) हैं
  • बिल्कुल एक "रूट" नोड है (यदि पेड़ में कम से कम एक नोड है), जो एक माता-पिता के बिना एक नोड है
  • से जुड़ा होना है
  • चक्रीय है , जिसका अर्थ है कि इसमें कोई चक्र नहीं है : "एक चक्र किनारों और कोने का एक मार्ग [AKA अनुक्रम] है जिसमें एक शीर्ष स्वयं से पहुंच योग्य है"

उपरोक्त गुणों में कुछ ओवरलैप है। विशेष रूप से, पिछले दो गुणों को बाकी गुणों द्वारा निहित किया गया है। लेकिन उनमें से सभी गैर-ध्यान देने योग्य हैं।


3

पेड़ में, प्रत्येक नोड (रूट नोड को छोड़कर) में एक पूर्ववर्ती नोड और एक या दो उत्तराधिकारी नोड होते हैं। इसे इन-ऑर्डर, प्री-ऑर्डर, पोस्ट-ऑर्डर और ब्रेडथ फर्स्ट ट्रैवर्सल्स का उपयोग करके ट्रेस किया जा सकता है। ट्री एक विशेष प्रकार का ग्राफ है जिसका कोई चक्र नहीं है इसलिए इसे DAG (डायरेक्टेड एसाइक्लिक ग्राफ) के रूप में जाना जाता है। पेड़ एक पदानुक्रमित मॉडल है।

ग्राफ में, प्रत्येक नोड में एक या अधिक पूर्ववर्ती नोड्स और उत्तराधिकारी नोड होते हैं। ग्राफ को डेप्थ फर्स्ट सर्च (डीएफएस) और चौड़ाई फर्स्ट सर्च (बीएफएस) एल्गोरिदम का उपयोग करके ट्रेस किया गया है। ग्राफ में चक्र है इसलिए यह पेड़ की तुलना में अधिक जटिल है। ग्राफ एक नेटवर्क मॉडल है। दो प्रकार के ग्राफ हैं: निर्देशित रेखांकन और अप्रत्यक्ष रेखांकन।


2

पेड़ स्पष्ट हैं: वे पुनरावर्ती डेटा संरचनाएं हैं जिनमें बच्चों के साथ नोड्स शामिल हैं।

नक्शा (उर्फ शब्दकोश) कुंजी / मूल्य जोड़े हैं। मानचित्र को एक कुंजी दें और यह संबंधित मूल्य को वापस कर देगा।

पेड़ों का उपयोग करके मानचित्रों को लागू किया जा सकता है, मुझे आशा है कि आपको वह भ्रमित नहीं लगेगा।

अद्यतन: "मानचित्र" के लिए "ग्राफ़" को भ्रमित करना बहुत भ्रामक है।

पेड़ों की तुलना में रेखांकन अधिक जटिल हैं। पेड़ पुनरावर्ती माता-पिता / बाल संबंधों को प्रभावित करते हैं। एक पेड़ को पार करने के प्राकृतिक तरीके हैं: गहराई-पहले, चौड़ाई-पहले, स्तर-क्रम, आदि।

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

मुझे लगता है कि किसी भी सभ्य डेटा स्ट्रक्चर्स टेक्स्ट (उदाहरण के लिए "एल्गोरिथम डिज़ाइन मैनुअल") में एक सरसरी खोज एसओ के किसी भी उत्तर की तुलना में अधिक और बेहतर जानकारी देगी। मैं आपको सलाह दूंगा कि आप निष्क्रिय मार्ग न अपनाएं और अपने लिए कुछ शोध करना शुरू करें।


1
क्षमा करें, मेरा मतलब है ग्राफ, मैंने नक्शा टाइप किया।
user918304

"मानचित्र" के लिए "भ्रमित करना" ग्राफ बहुत भ्रामक है। :)
cpz

1
यह कहना "रेखांकन पेड़ों की तुलना में अधिक जटिल हैं" यह कहने के समान है कि "कौवे पक्षियों की तुलना में अधिक विशिष्ट हैं"। क्या हमें इसके बजाय यह नहीं कहना चाहिए कि "सभी पेड़ ग्राफ हैं, लेकिन सभी ग्राफ पेड़ नहीं हैं"?
दुवेवाद

मुझे छह साल बाद परवाह नहीं है। निश्चित रूप से आप यहां अपने समय का बेहतर उपयोग कर सकते हैं।
duffymo

2

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

ग्राफ़ में एक से अधिक पथ हो सकते हैं अर्थात ग्राफ़ में नोड्स के बीच uni- दिशात्मक या द्वि-दिशात्मक पथ (किनारे) हो सकते हैं

इसके अलावा आप अधिक जानकारी देख सकते हैं: http://freefeast.info/difference-between/difference-between-trees-and-graphs-trees-vs-graphs/


0

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


0

पेड़ में एक रूट नोड और एक बच्चे के लिए केवल एक माता-पिता। हालांकि, रूट नोड की कोई अवधारणा नहीं है। एक और अंतर यह है कि पेड़ श्रेणीबद्ध मॉडल है लेकिन ग्राफ नेटवर्क मॉडल है।


0

एक पेड़ ऐसा होता है जैसे:

क) हटाए गए दिशा निर्देशों के साथ, यह जुड़ा हुआ है और एसाइक्लिक है

  1. आप या तो धारणा को हटा सकते हैं कि यह एसाइक्लिक है
  2. यदि यह परिमित है, तो आप वैकल्पिक रूप से इस धारणा को हटा सकते हैं कि यह जुड़ा हुआ है

बी) हर शीर्ष पर एक, रूट, 1 है indegree 1

c) रूट में indegree 0 है

  1. यदि केवल सूक्ष्मता से कई नोड्स हैं, तो आप या तो इस धारणा को हटा सकते हैं कि रूट के पास 0 है या यह धारणा है कि रूट के अलावा अन्य नोड्स में डिग्री 1 है

संदर्भ: http://www.cs.cornell.edu/courses/cs2800/2016sp/lectures/lec27-29-graphtheory.pdf


0

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

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