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