2011-09-14 69 views
93

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

उत्तर

1

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

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

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

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

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

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

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

+1

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

+0

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

+1

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

102

एक पेड़ एक ग्राफ का एक प्रतिबंधित रूप है।

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

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

ग्राफ आमतौर पर पहले सांस या पहली बार सांस खोजते हैं। यह पेड़ पर भी लागू होता है।

+7

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

+7

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

+16

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

0

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

0

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

66

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

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

A tree in real time

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

A real time graph

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

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

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

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

तकनीकी आरेख इस

पेड़ की तरह हो सकता है:

enter image description here

ग्राफ़:

enter image description here

लिंक नीचे का उल्लेख करना सुनिश्चित करें। वे पेड़ और ग्राफ पर आपके सभी सवालों का जवाब देंगे।

संदर्भ:

  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. विकिपीडिया

+4

मुझे चित्र +1 पसंद है – iliketocode

2

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

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

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

3

बीच ग्राफ़ और पेड़ डेटा संरचना अंतर

पेड़

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

  2. पेड़ ग्राफ का एक विशेष मामला है जिसमें कोई लूप नहीं, कोई सर्किट नहीं है और कोई स्वयं-लूप नहीं है।

  3. पेड़ में बिल्कुल एक रूट नोड है और प्रत्येक बच्चे के पास केवल एक माता पिता होता है।

  4. पेड़ों में, माता-पिता के बच्चे के रिश्ते हैं इसलिए प्रवाह ऊपर से नीचे या इसके विपरीत दिशा में हो सकता है।

5.Trees तो कोई चक्र, कोई आत्म छोरों और अभी भी जुड़े होने के रूप में रेखांकन कम जटिल है।

6. ट्री ट्रैवर्सल ग्राफ के ट्रैवर्सल का एक विशेष मामला है। ट्री, प्री-ऑर्डर में चल रहा है आदेश और बाद आदेश (डीएफएस में या BFS एल्गोरिथ्म में सभी तीन)

7.In पेड़, वहाँ कई नियमों/किनारों के माध्यम से नोड्स के बीच कनेक्शन बनाने के लिए प्रतिबंध नहीं है।

8. ट्रीज डीएजी की श्रेणी में आते हैं: निर्देशित एसाइक्लिक ग्राफ एक प्रकार का निर्देशित ग्राफ है जिसमें कोई चक्र नहीं है।

9. विभिन्न प्रकार के पेड़ हैं: बाइनरी ट्री, बाइनरी सर्च ट्री, एवीएल पेड़, हीप्स।

10. निःशुल्क अनुप्रयोग: ट्री ट्रैवर्सल & बाइनरी खोज जैसे सॉर्टिंग और खोज।

11.Tree हमेशा एन -1 किनारों है।

12.Tree एक पदानुक्रमित मॉडल है।

रेखांकन

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

    हो सकता है
    1. ग्राफ़ में लूप, सर्किट के साथ-साथ स्वयं-लूप भी हो सकते हैं।

3.In ग्राफ वहाँ रूट नोड की ऐसी कोई अवधारणा है।

4. ग्राफ़ में ऐसा कोई मूल शिशु संबंध नहीं है।

5।रेखांकन पेड़ों की तुलना में अधिक जटिल के रूप में यह चक्र हो सकता है कर रहे हैं, लूप आदि

6.Graph डीएफएस द्वारा पार किया जाता है: गहराई पहले खोज और BFS में: चौड़ाई पहले खोज एल्गोरिथ्म

7.In रेखांकन इस तरह के कोई नियम नहीं किनारों के माध्यम से नोड्स को जोड़ने के लिए प्रतिबंध हैं।

8. ग्राफ चक्रवात या विश्वकोश हो सकता है।

9. हेप्स। मुख्य रूप से दो प्रकार के ग्राफ होते हैं: निर्देशित और अप्रत्यक्ष ग्राफ।

10.Graph अनुप्रयोगों: नक्शे का रंग, या में (पीईआरटी & सीपीएम), एल्गोरिदम, ग्राफ़ रंग, नौकरी निर्धारण, आदि

  1. ग्राफ़ में, नहीं। किनारों पर ग्राफ पर निर्भर करता है।

12. ग्राफ एक नेटवर्क मॉडल है।

उदाहरण ट्री:

enter image description here

ग्राफ़:

enter image description here

संबंधित मुद्दे