बाइनरी सर्च ट्री

कम्प्यूटर विज्ञान एक बाइनरी सर्च ट्री है जिसे क्रम या चयनित बाइनरी ट्री भी कहा जाता है एक रूटेड बाइनरी ट्री डेटा संरचना है जिसकी आंतरिक कुंजी बाएं सर्च ट्री की सभी कुंजियों से अधिक होती हैं और उससे कम होती हैं बाइनरी सर्च ट्री पर एक संचालन की समय जटिलता सीधे ट्री की ऊंचाई के समानुपाती होती है।

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

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

बीएसटी के जटिलता विश्लेषण से पता चलता है कि औसतन डालने हटाने और खोजने में नोड्स के लिए n लगते हैं कि इसमें औसत स्थित और खोजें भी सम्मिलित हैं वे एक एकल लिंक की सूची सम्मिलन और विलोपन के साथ सर्च ट्री की ऊंचाई की असीमित वृद्धि को संबोधित करने के लिए बीएसटी के स्व-संतुलन बाइनरी सर्च ट्री संतुलन के रूपों को बाइनरी में शुरूआत करने की जटिलता को बाध्य करने के लिए पेश करते हैं इसमें एवीएल ट्री पहला स्व संतुलन बाइनरी सर्च ट्री था जिसका आविष्कार 1962 में एवीएल एड्स वेल्सकी और ईव्जेनी लैन्डिस द्वारा किया गया था।

बाइनरी सर्च ट्री का उपयोग अमूर्त डेटा जैसे सेट और प्राथमिकता पंक्ति को लागू करने के लिए किया जाता है और बाइनरी सर्च ट्री में इसका उपयोग किया जाता है।

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

बाइनरी सर्च ट्री की जटिलताएं असीम रूप से बढ़ रही हैं यदि नोड्स को एक मनमाने क्रम में डालते हैं तो बाइनरी सर्च ट्री की ऊंचाई को सीमित करने के लिए स्व-संतुलन पेश किए गए थे जैसे एवीएल ट्री ट्रीप और लाल काले ट्री एवीएल का आविष्कार जॉर्जी एडेल्सन वेलेस्की और ईव्जेनी लैन्ड्स द्वारा 1962 में सूचना के कुशल संगठन के लिए किया गया था  यह आविष्कार किया जाने वाला पहला स्व-संतुलन बाइनरी सर्च ट्री था।

सिंहावलोकन
बाइनरी सर्च ट्री एक पाठ्यक्रम है जिसमें नोड्स को एक क्रम में व्यवस्थित किया जाता है ये गैर-सख्त क्रम में रखे जाते हैं जिसमें किसी विशेष कुंजियों वाले बाइनरी सर्च ट्री से संग्रहित होते हैं तथा जो बाइनरी सर्च को संतुष्ट करते हैं।

खोज प्रारूप को छोटा करने में बाइनरी सर्च ट्री प्रभावशाली है जिसमें कार्यान्वित आदेश और पहचान करने की आवश्यकता नहीं होती है जबकि बीएसटी की खोज जटिलता के उस क्रम पर निर्भर करती है जिसमें नोड्स डाले और हटाए जाते हैं जिससे कि खराब स्थिति बाइनरी सर्च ट्री में क्रमिक संचालन अर्धपतन का कारण बन जाता है और संरचना की तरह एक एकल सूची बना सकता है इस प्रकार सूची के रूप में सबसे खराब स्थिति वाली जटिलता में संग्रहित किया जाता है।

बाइनरी सर्च ट्री भी एक मूलभूत डेटा संरचना है जिसका उपयोग अमूर्त डेटा संरचनाओं जैसे सेट कंप्यूटर विज्ञान और साहचर्य सारणियों के निर्माण में किया जाता है।

खोजना
एक विशिष्ट कुंजी के लिए बाइनरी सर्च ट्री को क्रमादेशित किया जाता है तथा इसमें पुनरावर्तन या पुनरावृत्ति की गणना की जाती है।

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

पुनरावर्ती खोज
निम्नलिखित स्यूडोकोड पुनरावर्तन कंप्यूटर विज्ञान के माध्यम से बीटीएस खोज प्रक्रिया को लागू करता है।

पुनरावृत्त खोज
खोज के पुनरावर्ती संस्करण को कुछ समय में नियंत्रित किया जा सकता है क्योंकि अधिकांश मशीनों पर पुनरावृत्त संस्करण कंप्यूटर प्रदर्शन में पाया जाता है।

इसमें खोज के कुछ लसीका नोड होते हैं बीएसटी खोज की दौड़ कठिन होती है जबकि बीएसटी खोज की सबसे खराब स्थिति होती है तथा बीएसटी में नोड्स की कुल संख्या एन है क्योंकि एक असंतुलित बीएसटी एक सूची में खराब हो सकती है जबकि बीटीएस ऊँचाई-संतुलित सर्च ट्री है ।

पूर्ववर्ती उत्तराधिकारी
कुछ कार्यों के लिए एक नोड दिया गया जिसके उत्तराधिकारी या पूर्ववर्ती का पता लगाना अत्यंत महत्वपूर्ण है जबकि बीएसटी की सभी कुंजियाँ अलग-अलग हैं तथा एक नोड के उत्तराधिकारी हैं बीएसटी में सबसे छोटी कुंजी वाला नोड एक्स है दूसरी ओर एक नोड के पूर्ववर्ती बीएसटी में सबसे बड़ी कुंजी से छोटा नोड एक्स है नोड के उत्तराधिकारी और पूर्ववर्ती को खोजने के लिए निम्नलिखित स्यूडोकोड की प्रयोग किया जाता है।

बीएसटी में एक नोड खोजने के लिए संचालन जिसकी कुंजी सीमा अधिकतम या न्यूनतम है यह कुछ कार्यों में महत्वपूर्ण हैं जैसे कि उत्तराधिकारी और नोड्स के पूर्ववर्ती का निर्धारण करना संचालन के लिए स्यूडोकोड महत्वपूर्ण हैं।

प्रविष्टि
सम्मिलन और विलोपन संचालन बीएसटी प्रतिनिधित्व को गतिशील रूप से बदलने का कारण बनते हैं डेटा संरचना को इस तरह से संशोधित किया जाता है जिससे कि बीएसटी के गुण बने रहें बीएसटी में पत्ती के नोड्स के रूप में नए नोड डाले जाते हैं जो सम्मिलित ऑपरेशन की प्रविष्टि करते हैं।

हटाना
यह एक नोड का विलोपन है जो एक बाइनरी सर्च ट्री से बीएसटी की तीन स्थितियों का पालन करते हैं।
 * 1) माना डी एक पत्ती है जो डी का मूल बिन्दु है डी सर्च ट्री से हटा दिया जाता है।
 * 2) अगर डी एक एकल विद्यार्थी है तो बच्चा बाएँ या दाएँ बच्चे के रूप में उन्नत करेगा डी माता-पिता की स्थिति के आधार पर कार्य करता है जैसे अंजीर में दिखाया गया है कि भाग ए और भाग बी और डी पेड़ से हटा दिया जाता है।
 * 3) अगर डी का उत्तराधिकारी एक बाएँ और दाएँ दोनों बच्चे हैं ई जिसके पास कोई बच्चा नहीं है तो इस स्थिति में वह क्या करेगा।
 * 4) अगर डी एस का दायां बच्चा ऊंचा हो जाता है तो ई के बॉंये बच्चे किस बिन्दु पर ले जाये जायेंगे।

निम्नलिखित स्यूडोकोड बाइनरी सर्च ट्री में विलोपन ऑपरेशन को लागू करता है।

यात्रीगण
एक बीएसटी तीन बुनियादी प्रारूप के माध्यम से यात्रा हो सकती है यात्रा में आदेश उप आदेशिक यात्रा और पोस्ट आदेश यात्रायें भी सम्मिलित हैं।
 * बाएं सर्च ट्री से नोड्स पहले देखे जाते हैं उसके बाद रूट देखे जाते हैं।
 * जड़ को पहले बहाया जाता है उसके बाद बाएँ और दाएँ सर्च ट्री को देखा जाता है।
 * बाएं सर्च ट्री से नोड्स पहले देखे जाते हैं।

संतुलित बाइनरी सर्च ट्री
पुनर्संतुलन के बिना बाइनरी सर्च ट्री में सम्मिलित या विलोपन अर्धपतन का कारण बन सकता है जिसके परिणामस्वरूप ऊँचाई होती है एक रेखीय खोज की तुलना में सर्च ट्री को संतुलित और ऊँचाई से घेरे रखना होता है बाइनरी प्रारूप जटिलता के लिए बाइनरी सर्च ट्री की ऊंचाई को बनाए रखने के लिए बनावट किए गए ट्री के अद्यतन संचालन के दौरान इसे स्व-संतुलन तंत्र द्वारा प्राप्त किया जा सकता है।

ऊंचाई-संतुलित ट्री
एक सर्च ट्री ऊँचाई-संतुलित में होता है यदि बाइनरी सर्च ट्री की ऊँचाइयों को एक स्थिर कारक द्वारा संबंधित होने दिया जाता है। यह संपत्ति एवीएल ट्री द्वारा पेश की गई थी और लाल-काले ट्री द्वारा जारी रखी गई थी। जड़ से संशोधित पत्ती तक पथ पर सभी की ऊंचाई को देखी जानी चाहिए और संभवतया ट्री में प्रत्येक डाल को हटाने के लिए सही किया जाना चाहिए।

वजन-संतुलित ट्री
भार-संतुलित ट्री में संतुलित ट्री की कसौटी की पत्तियों की संख्या है बाएँ और दाएँ सर्च ट्री का वजन सबसे अधिक होता है जबकि अंतर अनुपात से बंधा हुआ है अल्फा संतुलन की स्थिति के बाद नहीं रखा जा सकता सर्च ट्री संतुलन की स्थिति का एक पूरा परिवार होता है जहां प्रत्येक सर्च ट्री में कम से कम एक अंश होता है।

प्रकार
कई स्व-संतुलित बाइनरी सर्च ट्री हैं जिनमें रेड-ब्लैक ट्री भी होते हैं।

क्रमबद्ध करें
बाइनरी सर्च ट्री का उपयोग में ट्री का प्रारूप छोटा किया जाता है जहां सभी तत्वों को एक ही बार में डाला जाता है।

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

बाहरी संबंध

 * Ben Pfaff: An Introduction to Binary Search Trees and Balanced Trees. (PDF; 1675 kB) 2004.
 * Binary Tree Visualizer (JavaScript animation of various BT-based data structures)