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

हाफेज डेटा संरचना

परिचय

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

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

अर्ध-किनारे डेटा संरचना को क्वाड-एज डेटा संरचना के प्रकारों में से एक के रूप में भी प्रदर्शित किया जा सकता है। सामान्य तौर पर, नॉन-ओरिएंटेबल 2-मैनिफोल्ड को क्वाड-एज डेटा द्वारा दर्शाया जा सकता है, लेकिन यहां वेरिएंट केवल ओरिएंटेबल 2-मैनिफोल्ड्स तक ही सीमित है।

उदाहरण कार्यक्रम

डिफ़ॉल्ट हाफेज डेटा संरचना

निम्न उदाहरण प्रोग्राम डिफ़ॉल्ट हाफएज डेटा संरचना और डेकोरेटर वर्ग को लागू करता है। डिफ़ॉल्ट हाफेज डेटा संरचना सूची-आधारित प्रतिनिधित्व को लागू करती है। आइटम 'सभी घटनाओं और शिखर के लिए एक बिंदु प्रकार समझाया गया है। तुच्छ गुण वर्ग बिंदु के लिए लागू प्रकार देता है। प्रोग्राम एक लूप बनाता है, जिसमें दो आधे किनारे, एक शीर्ष (वर्टेक्स) और दो फलक (Face1 और Face2) होते हैं, और इसकी वैधता की पुष्टि करते हैं।

हाफेज डेटा संरचना

#include <CGAL/HalfedgeDS_default.h>
#include <CGAL/HalfedgeDS_decorator.h>
struct Traits { typedefint Point_2; };
typedef CGAL::HalfedgeDS_default<Traits> HDS1;
typedef CGAL::HalfedgeDS_decorator<HDS> Decorator1;
int main() {
   HDS1 hds1;
   Decorator1 decorator(hds1);
   decorator.create_loop();
   CGAL_assertion(decorator.is_valid());
   return 0;
}

  1. डेटा संरचना में अंतराल पेड़

    इस खंड में हम देखेंगे कि अंतराल वृक्ष क्या है। जैसा कि नाम से पता चलता है कि अंतराल के पेड़ वे पेड़ हैं जो अंतराल से जुड़े होते हैं। तो अंतराल वृक्षों के बारे में चर्चा करने से पहले, आइए हम प्रारंभिक अंतराल देखें। एक अंतराल मूल रूप से एक सीमा है। इसलिए यदि एक अंतराल को [ए, बी] के रूप में लिखा जाता

  1. डेटा संरचना में B+ ट्री क्वेरी

    यहां हम देखेंगे कि B+ ट्री में सर्च कैसे करें। B+ ट्री सर्चिंग को B+ ट्री क्वेरीिंग के नाम से भी जाना जाता है। यह एल्गोरिथम काफी हद तक बी-ट्री की क्वेरी के समान है। इसके अलावा, यह रेंज क्वेरी का समर्थन करता है। मान लीजिए हमारे पास नीचे जैसा B+ पेड़ है - B+ ट्री का उदाहरण - खोज तकनीक बहुत हद तक बा

  1. डेटा संरचना में B+ ट्री

    यहां हम देखेंगे कि B+ पेड़ क्या हैं। B+ ट्री, B-ट्रीज़ का विस्तारित संस्करण है। यह पेड़ बी-ट्री पर बेहतर सम्मिलन, विलोपन और खोज का समर्थन करता है। बी-पेड़, चाबियाँ और रिकॉर्ड मान आंतरिक और साथ ही पत्ती नोड्स में संग्रहीत होते हैं। बी + ट्री रिकॉर्ड में, लीफ नोड पर संग्रहीत किया जा सकता है, आंतरिक न