यदि कोई पुनर्प्राप्ति wrt एक समन्वय नहीं है: तो आप हैशिंग एक्स, y निर्देशांक के जोड़े का प्रस्ताव दे सकते हैं। पोस्ट कम ध्रुव के साथ कुछ हैश का प्रस्ताव है, जैसा कि hash = (y << 16)^x;
करता है।
लेकिन आप एक्स या वाई के लिए अपने डेटा wrt value तक पहुंच बनाना चाहते हैं। बिंदुओं को स्टोर करने और कुशलतापूर्वक संचालन करने के लिए संरचना एक बिंदु QTree या क्वाड ट्री है। See here।
बिंदु क्वाड्री दो आयामी बिंदु डेटा का प्रतिनिधित्व करने के लिए उपयोग किए जाने वाले बाइनरी पेड़ का एक अनुकूलन है। यह सभी क्वाड्रिस की विशेषताओं को साझा करता है लेकिन एक सच्चा पेड़ है क्योंकि उपखंड का केंद्र हमेशा बिंदु पर होता है।
एक बिंदु quadtree का एक नोड बड़ा अंतर किया जा रहा है यह चार संकेत है कि (एक-एक वृत्त का चतुर्थ भाग के लिए) के बजाय दो ("छोड़" और "सही") के साथ एक द्विआधारी पेड़ की एक नोड के समान है, एक साधारण बाइनरी पेड़ में। इसके अलावा एक कुंजी आमतौर पर दो भागों में विघटित होती है, जो x और y निर्देशांक का जिक्र करती है। इसलिए एक नोड में निम्नलिखित जानकारी होती है: 4 पॉइंटर्स: क्वाड ['एनडब्ल्यू'], क्वाड ['एनई'], क्वाड ['एसडब्ल्यू]], और क्वाड [' एसई '] बिंदु; जो बदले में है: कुंजी; आमतौर पर एक्स, वाई निर्देशांक मान के रूप में व्यक्त किया जाता है; उदाहरण के लिए एक नाम
फिर, आप एएबीबी रेंज के भीतर सभी बिंदुओं की पूछताछ के लिए एक पुनरावर्ती कार्य कर सकते हैं। आप QueryRange()
class QuadTree
{
function queryRange(AABB range)
{
Array of XY pointsInRange; // Prepare an array of results
// Check objects at this quad level
for (int p := 0; p < points.size; p++)
{
if (range.containsPoint(points[p]))
pointsInRange.append(points[p]);
}
pointsInRange.appendArray(northWest->queryRange(range));
pointsInRange.appendArray(northEast->queryRange(range));
pointsInRange.appendArray(southWest->queryRange(range));
pointsInRange.appendArray(southEast->queryRange(range));
return pointsInRange;
}
}
के इस कार्यान्वयन अनुकूलित कर सकते हैं जब मैंने कहा कि मैं समन्वय कुल्हाड़ी के लिए हैश तालिका का उपयोग करेगा इसी y निर्देशांक टक्कर हो जाएगा उन लोगों के लिए, के लिए के रूप में, मैं जुड़ा हुआ सूचियों का उपयोग, इसलिए फिर साक्षात्कारकर्ता कहा जाएगा कि अगर मैं कर रहा हूँ इन लिंक्ड सूचियों में पहले से ही पियोनर्स का उपयोग कर मैं इन पॉइंटर्स का बेहतर उपयोग कर सकता हूं। – user2328404
मुझे नहीं पता, शायद वह किसी भी तरह से अंतरिक्ष बचाने के लिए एक्स और वाई हैश तालिकाओं को गठबंधन करने का सुझाव दे रहा था। – user2328404