Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> प्रोग्रामिंग

डेटा स्ट्रक्चर में सॉलिड ट्रीज़ (Solid Trees)

दिए गए फॉरेस्ट (Forest) के लिए, हम दिए गए कुछ एज को "डैश्ड" (Dashed) बनाते हैं और बाकी को सॉलिड (Solid) रखते हैं। प्रत्येक नॉन-लीफ नोड (Non-leaf Node) अपने बच्चों में से केवल एक से "सॉलिड" एज से जुड़ा होता है। अन्य सभी बच्चे डैश्ड एज की मदद से जुड़े होते हैं।

इसे और ठोस बनाने के लिए, किसी भी दिए गए ट्री में, राइट-मोस्ट लिंक (Right-most Link) (अपने चाइल्ड के लिए) को सॉलिड रखा जाना चाहिए, और इसके अन्य बच्चों के लिंक को "डैश्ड" बनाया जाता है।

परिणामस्वरूप, ट्री सॉलिड पथ (Solid Paths) के संग्रह में टूट जाता है। सॉलिड पथ की जड़ें (Roots) किसी अन्य सॉलिड पथ से डैश्ड एज द्वारा जुड़ी होती हैं। एक नया डेटा स्ट्रक्चर जिसे "वर्चुअल ट्री" (Virtual Tree) कहा जाता है, बनाया जाता है। प्रत्येक लिंकिंग और कटिंग ट्री T को एक वर्चुअल ट्री V द्वारा दर्शाया जाता है, जिसमें नोड्स का समान सेट होता है। लेकिन मूल ट्री के प्रत्येक सॉलिड पथ को वर्चुअल ट्री में बाइनरी ट्री में संशोधित या परिवर्तित किया जाता है; बाइनरी ट्री यथासंभव संतुलित होते हैं। इस प्रकार, एक वर्चुअल ट्री एक (सॉलिड) लेफ्ट चाइल्ड, एक (सॉलिड) राइट चाइल्ड और शून्य या अधिक (डैश्ड) मिडिल चाइल्ड से जुड़ा होता है।

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

हम जानते हैं कि प्रत्येक पथ को बाइनरी ट्री में परिवर्तित किया जाता है। पथ में एक नोड (मान लीजिए p) का पैरेंट (मान लीजिए q) उस नोड (p) का इन-ऑर्डर (सिमेट्रिक ऑर्डर) उत्तराधिकारी (Inorder Successor) है। हालांकि, यदि p सॉलिड सब-ट्री में अंतिम नोड (सिमेट्रिक ऑर्डर में) है तो उसका पैरेंट पथ उस सॉलिड सब-ट्री की रूट का पैरेंट होगा जिसमें वह समाहित है।

औपचारिक रूप से, Parentpath(v) = Node(Inorder(v) + 1).

ध्यान दें कि किसी भी नोड v के लिए, लेफ्ट सब-ट्री में सभी नोड्स के इनऑर्डर नंबर कम होंगे और राइट सब-ट्री में उच्च होंगे। यह सुनिश्चित करता है कि लेफ्ट सबट्री में सभी नोड्स को वंशज (Descendants) माना जाता है और राइट सबट्री में सभी नोड्स को पूर्वज (Ancestors) माना जाता है। इस प्रकार, बाइनरी ट्री में लेफ्ट चाइल्ड का पैरेंट (मूल ट्री में) पूर्वज माना जाएगा। लेकिन, बाइनरी ट्री में राइट चाइल्ड का पैरेंट मूल ट्री में वंशज माना जाता है। यह क्रम, हमें लागत को प्रभावी ढंग से जोड़ने में मदद करता है।

आगे बढ़ने के लिए हमें कुछ परिभाषाओं या संकेतन की आवश्यकता है।

मान लीजिए mincost(x), x के उसी सॉलिड सब-ट्री में सभी वंशजों के बीच न्यूनतम कुंजी मान वाले नोड की लागत है।

फिर प्रत्येक नोड में हम दो फील्ड δcost(x) और δmin(x) स्टोर करते हैं। हम परिभाषित करते हैं,

δmin(x) = cost(x) − mincost(x). और, δcost(x) = cost(x) − cost(parent(x)) यदि x एक सॉलिड पैरेंट से जुड़ा है
δcost(x) = cost(x) अन्यथा (x को सॉलिड ट्री रूट माना जाता है)
  1. डेटा स्ट्रक्चर में बाइनरी ट्री ADT डेटा स्ट्रक्चर में बाइनरी ट्री ADT

    मूल अवधारणा (Basic Concept) बाइनरी ट्री को एक ऐसे ट्री के रूप में परिभाषित किया जाता है जिसमें कोई भी नोड दो से अधिक बच्चे (Children) नहीं रख सकता। किसी भी नोड की उच्चतम डिग्री (Degree) दो होती है। इसका अर्थ है कि बाइनरी ट्री की डिग्री शून्य, एक या दो हो सकती है। उपरोक्त आकृति में, बाइनरी ट्री मे

  1. डेटा स्ट्रक्चर में BSP ट्रीज़ डेटा स्ट्रक्चर में BSP ट्रीज़

    कंप्यूटर साइंस में, बाइनरी स्पेस पार्टीशनिंग (BSP) नामक एक विधि को हाइपरप्लेन्स (Hyperplanes) को पार्टीशन के रूप में लागू करके एक स्पेस को दो कन्वेक्स सेट्स (Convex Sets) में पुनरावर्ती रूप से उप-विभाजित (Recursively Subdividing) करने के लिए लागू किया जाता है। उप-विभाजन की यह प्रक्रिया क्षेत्र में व

  1. डेटा स्ट्रक्चर में रेंज ट्रीज़ डेटा स्ट्रक्चर में रेंज ट्रीज़

    रेंज ट्री (Range Tree) को बिंदुओं की सूची रखने के लिए एक क्रमबद्ध ट्री डेटा स्ट्रक्चर (Ordered Tree Data Structure) के रूप में परिभाषित किया जाता है। यह दिए गए रेंज के भीतर सभी बिंदुओं को कुशलतापूर्वक पुनः प्राप्त करने की अनुमति देता है, और आमतौर पर दो या अधिक आयामों में लागू किया जाता है। यह kd-ट्र