बाइनरी सर्च ट्री
Time complexity in big O notation | ||||
---|---|---|---|---|
|
कंप्यूटर विज्ञान में एक बाइनरी सर्च ट्री (बीएसटी) जिसे क्रमांक या सॉर्टेड बाइनरी ट्री भी कहा जाता है एक जड़ वाला पेड़ बाइनरी ट्री डेटा संरचना है जिसमें आंतरिक कुंजी बाएं उप पेंड़ की सभी कुंजियों से अधिक नहीं होती हैं तथा कम होती हैं इसके दाहिने उप पेंड़ की तुलना में बाइनरी सर्च ट्री पर संचालन की समय जटिलता सीधे पेड़ की ऊंचाई के समानुपाती होती है।
बाइनरी सर्च ट्री डेटा आइटम्स को तेजी से देखने जोड़ने और हटाने के लिए बाइनरी सर्च एल्गोरिथम की अनुमति देता है क्योंकि बीएसटी में प्रोप इस तरह रखे गए हैं कि प्रत्येक तुलना शेष पेड़ के आधे हिस्से को छोड़ देती है प्रदर्शन खोजना द्विआधारी लघुगणक के समानुपाती होता है। लेबल किए गए डेटा के कुशल भंडारण की समस्या के लिए 1960 के दशक में बीएसटी तैयार किए गए थे और इसका श्रेय कॉनवे बर्नर्स-ली और डेविडव्हीलर कंप्यूटर के वैज्ञानिक को दिया जाता है।
बाइनरी सर्च ट्री का प्रदर्शन पेड़ में नोड्स के सम्मिलन के क्रम पर निर्भर करता है क्योंकि मनमाना सम्मिलन अर्धपतन का कारण बन सकता है बाइनरी सर्च ट्री के कई रूपों को सबसे खराब स्थिति के प्रदर्शन की गारंटी के साथ बनाया जा सकता है क्योंकि इसमें मूल संचालन में सम्मिलित हैं सबसे खराब स्थिति जटिलता वाले बीएसटी एक अवर्गीकृत सरणी से बेहतर प्रदर्शन करते हैं जिनको रैखिक समय की आवश्यकता होती है।
बीएसटी के कम्प्यूटेशनल जटिलता सिद्धांत से पता चलता है कि अच्छा सबसे खराब और औसत स्थित, डालें, हटायें और खोजें भी सम्मिलित हैं। वे एक एकल लिंक की सूची सम्मिलन और विलोपन के साथ पेड़ की ऊंचाई की असीमित वृद्धि को संबोधित करने के लिए बीएसटी के स्व-संतुलन बाइनरी सर्च ट्री संतुलन रूपों को बाइनरी शुरूआत की सबसे खराब जटिलता को बाध्य करने के लिए पेश किया जाता है। एवीएल पेड़ पहला स्व संतुलन बाइनरी सर्च ट्री था जिसका आविष्कार 1962 में एवीएल एड्स वेल्सकी और ईव्जेनी लैन्डिस द्वारा किया गया था।
बाइनरी सर्च ट्री का उपयोग अमूर्त डेटा प्रकारों जैसे सेट और प्राथमिकता पंक्ति को लागू करने के लिए किया जा सकता है और छँटाई एल्गोरिथ्म जैसे पेड़ की छँटाई में उपयोग किया जाता है।
इतिहास
बाइनरी सर्च ट्री एल्गोरिथम स्वतंत्र रूप से कई शोधकर्ताओं द्वारा खोजा गया था जिसमें पी.एफ. विंडले एंड्रयू डोनाल्ड बूथ एंड्रयू कॉलिन थॉमस एन. हिब्बार्ड तथा [1][2] एल्गोरिथ्म का श्रेय कॉनवे बर्नर्स-ली और डेविड व्हीलर कंप्यूटर वैज्ञानिक को दिया जाता है जिन्होंने 1960 में चुंबकीय टेप में लेबल किए गए डेटा को संग्रहीत करने के लिए इसका उपयोग किया था।[3] सबसे शुरुआती और लोकप्रिय बाइनरी सर्च ट्री एल्गोरिथम हिब्बार्ड का है।[1]
बाइनरी सर्च ट्री की समय जटिलताएं पेड़ की ऊंचाई के साथ असीम रूप से बढ़ जाती हैं यदि नोड्स को एक मनमाने क्रम में डाला जाता है तो पेंड़ की ऊंचाई को सीमित करने के लिए स्व-संतुलन बाइनरी सर्च पेंड़ पेश किए गए थे [4] पेड़ की ऊंचाई को सीमित करने के लिए विभिन्न ऊंचाई-संतुलित द्विआधारी खोज पेड़ पेश किए गए जैसे एवीएल पेड़ ट्रीप और लाल-काले पेड़ [5] एवीएल पेड़ का आविष्कार जॉर्जी एडेल्सन वेलेस्की और ईव्जेनी लैन्ड्स द्वारा 1962 में सूचना के कुशल संगठन के लिए किया गया था।[6][7] यह आविष्कार किया जाने वाला पहला स्व-संतुलन बाइनरी खोजक पेड़ था।[8]
सिंहावलोकन
एक द्विआधारी खोज ट्री एक रूटेड बाइनरी ट्री है जिसमें नोड्स को कुल क्रम में व्यवस्थित किया जाता है#सख्त और गैर-सख्त कुल ऑर्डर जिसमें किसी विशेष नोड से अधिक कुंजियों वाले नोड्स को सही ट्री (डेटा संरचना)#शब्दावली| उप-वृक्ष और बराबर या उससे कम वाले बायीं उप-वृक्ष पर संग्रहीत होते हैं जो बाइनरी खोज संपत्ति को संतुष्ट करते हैं।[9]: 298 [10]: 287
एल्गोरिदम और खोज एल्गोरिदम को सॉर्ट करने में बाइनरी सर्च ट्री भी प्रभावशाली हैं। (इस प्रकार, कार्यान्वित आदेश संबंध को सख्त और पहचान करने की आवश्यकता नहीं है ताकि डुप्लिकेट पेड़ में हो सकता है, यानी एक ही कुंजी के साथ एक से अधिक आइटम।) हालांकि, बीएसटी की खोज जटिलता उस क्रम पर निर्भर करती है जिसमें नोड्स डाले और हटाए जाते हैं; चूंकि सबसे खराब स्थिति में, बाइनरी सर्च ट्री में क्रमिक संचालन अध: पतन का कारण बन सकता है और संरचना की तरह एक एकल लिंक्ड सूची (या असंतुलित पेड़) बना सकता है, इस प्रकार एक लिंक की गई सूची के रूप में सबसे खराब स्थिति वाली जटिलता है।[11][9]: 299-302
बाइनरी सर्च ट्री भी एक मूलभूत डेटा संरचना है जिसका उपयोग अमूर्त डेटा संरचनाओं जैसे सेट, सेट (कंप्यूटर साइंस) #Multiset, और साहचर्य सरणियों के निर्माण में किया जाता है।
संचालन
खोजना
एक विशिष्ट कुंजी के लिए बाइनरी सर्च ट्री में खोज को क्रमादेशित पुनरावर्तन (कंप्यूटर विज्ञान) या पुनरावृत्ति#कंप्यूटिंग किया जा सकता है।
वृक्ष (डेटा संरचना)#रूट नोड्स की जांच से खोज शुरू होती है। अगर पेड़ नल पॉइंटर है |nil, खोजी जा रही कुंजी ट्री में मौजूद नहीं है। अन्यथा, यदि कुंजी रूट के बराबर है, तो खोज सफल होती है और नोड वापस आ जाता है। यदि कुंजी रूट से कम है, तो खोज बाएँ सबट्री की जाँच करके आगे बढ़ती है। इसी तरह, यदि कुंजी रूट से अधिक है, तो खोज सही सबट्री की जांच करके आगे बढ़ती है। यह प्रक्रिया तब तक दोहराई जाती है जब तक कि कुंजी नहीं मिल जाती या शेष सबट्री नहीं मिल जाती . यदि खोजी गई कुंजी a के बाद नहीं मिलती है सबट्री तक पहुँच जाता है, तो कुंजी ट्री में मौजूद नहीं है।[10]: 290–291
पुनरावर्ती खोज
निम्नलिखित स्यूडोकोड पुनरावर्तन (कंप्यूटर विज्ञान) के माध्यम से BST खोज प्रक्रिया को लागू करता है।[10]: 290
Recursive-Tree-Search(x, key) if x = NIL or key = x.key then return x if key < x.key then return Recursive-Tree-Search(x.left, key) else return Recursive-Tree-Search(x.right, key) end if |
पुनरावर्ती प्रक्रिया एक तक जारी रहती है या तलाश की जा रही है।
पुनरावृत्त खोज
खोज के पुनरावर्ती संस्करण को थोड़ी देर के लूप में अनियंत्रित किया जा सकता है। अधिकांश मशीनों पर, पुनरावृत्त संस्करण अधिक कंप्यूटर प्रदर्शन वाला पाया जाता है।[10]: 291
Iterative-Tree-Search(x, key) while x ≠ NIL and key ≠ x.key then if key < x.key then x := x.left else x := x.right end if repeat return x |
चूँकि खोज कुछ लसीका नोड तक आगे बढ़ सकती है, BST खोज की रनिंग टाइम जटिलता है कहाँ वृक्ष है (डेटा संरचना)#शब्दावली। हालाँकि, BST खोज के लिए सबसे खराब स्थिति है कहाँ बीएसटी में नोड्स की कुल संख्या है, क्योंकि एक असंतुलित बीएसटी एक लिंक्ड सूची में खराब हो सकता है। हालाँकि, यदि BST ऊँचाई-संतुलित वृक्ष है | ऊँचाई-संतुलित ऊँचाई है .[10]: 290
उत्तराधिकारी और पूर्ववर्ती
कुछ कार्यों के लिए, एक नोड दिया गया , के उत्तराधिकारी या पूर्ववर्ती का पता लगाना अत्यंत महत्वपूर्ण है। यह मानते हुए कि BST की सभी कुंजियाँ अलग-अलग हैं, एक नोड की उत्तराधिकारी हैं बीएसटी में सबसे छोटी कुंजी वाला नोड है की चाबी। दूसरी ओर, एक नोड के पूर्ववर्ती BST में सबसे बड़ी कुंजी से छोटा नोड है की चाबी। नोड के उत्तराधिकारी और पूर्ववर्ती को खोजने के लिए निम्नलिखित स्यूडोकोड है बीएसटी में।[12][13][10]: 292–293
BST-Successor(x) if x.right ≠ NIL then return BST-Minimum(x.right) end if y := x.parent while y ≠ NIL and x = y.right then x := y y := y.parent repeat return y |
BST-Predecessor(x) if x.left ≠ NIL then return BST-Maximum(x.left) end if y := x.parent while y ≠ NIL and x = y.left then x := y y := y.parent repeat return y |
बीएसटी में एक नोड खोजने जैसे संचालन, जिसकी कुंजी अधिकतम या न्यूनतम है, कुछ कार्यों में महत्वपूर्ण हैं, जैसे कि उत्तराधिकारी और नोड्स के पूर्ववर्ती का निर्धारण करना। संचालन के लिए स्यूडोकोड निम्नलिखित है।[10]: 291–292
BST-Maximum(x) while x.right ≠ NIL then x := x.right repeat return x |
BST-Minimum(x) while x.left ≠ NIL then x := x.left repeat return x |
प्रविष्टि
सम्मिलन और विलोपन जैसे संचालन BST प्रतिनिधित्व को गतिशील रूप से बदलने का कारण बनते हैं। डेटा संरचना को इस तरह से संशोधित किया जाना चाहिए कि BST के गुण बने रहें। बीएसटी में पत्ती के नोड्स के रूप में नए नोड डाले गए हैं।[10]: 294–295 सम्मिलन ऑपरेशन का पुनरावृत्त कार्यान्वयन निम्नलिखित है।[10]: 294
1 BST-Insert(T, z) 2 y := NIL 3 x := T.root 4 while x ≠ NIL do 5 y := x 6 if z.key < x.key then 7 x := x.left 8 else 9 x := x.right 10 end if 11 repeat 12 z.parent := y 13 if y = NIL then 14 T.root := z 15 else if z.key < y.key then 16 y.left := z 17 else 18 y.right := z 19 end if |
प्रक्रिया अनुगामी सूचक को बनाए रखती है के माता पिता के रूप में . लाइन 2 पर इनिशियलाइज़ेशन के बाद, जबकि लूप 4-11 लाइनों के साथ पॉइंटर्स को अपडेट करने का कारण बनता है। अगर है , बीएसटी खाली है, इस प्रकार बाइनरी सर्च ट्री के रूट नोड के रूप में डाला गया है , यदि यह नहीं है , प्रविष्टि कुंजियों की तुलना करके आगे बढ़ती है 15-19 की तर्ज पर और उसके अनुसार नोड डाला जाता है।[10]: 295
हटाना
एक नोड का विलोपन, कहते हैं , एक बाइनरी सर्च ट्री से तीन मामलों का पालन करना चाहिए:[10]: 295
- अगर एक लीफ नोड है, जो पैरेंट नोड का पॉइंटर है से प्रतिस्थापित हो जाता है और इसके परिणामस्वरूप पेड़ से हटा दिया जाता है।
- अगर एक एकल चाइल्ड नोड है, तो बच्चा या तो बाएँ या दाएँ बच्चे के रूप में उन्नत हो जाता है ′s माता-पिता की स्थिति के आधार पर बीएसटी के भीतर, जैसा कि अंजीर में दिखाया गया है। 2 भाग (ए) और भाग (बी), और परिणामस्वरूप, पेड़ से हटा दिया जाता है।
- अगर का उत्तराधिकारी एक बाएँ और दाएँ दोनों बच्चे हैं (जाने भी दो जिसके पास कोई बच्चा नहीं है)) की स्थिति लेता है वृक्ष में। यह की स्थिति पर निर्भर करता है अंदर :[10]: 296
- अगर है ′s तत्काल दायां बच्चा, ऊंचा हो जाता है और के लेफ्ट चाइल्ड पॉइंटर को पॉइंट किया जाता है ′s प्रारंभिक बाएँ उप-वृक्ष, जैसा कि चित्र में दिखाया गया है। 2 भाग (सी)।
- अगर की तत्काल सही संतान नहीं है , विलोपन की स्थिति को बदलकर आगे बढ़ता है द्वारा ′s सही बच्चा (यहाँ ), और का स्थान लेता है में , जैसा कि यहां दिखाया गया है।
निम्नलिखित स्यूडोकोड बाइनरी सर्च ट्री में विलोपन ऑपरेशन को लागू करता है।[10]: 296-298
1 BST_Delete(BST, D) 2 if D.left = NIL then 3 Shift_Nodes(BST, D, D.right) 4 else if D.right = NIL then 5 Shift_Nodes(BST, D, D.left) 6 else 7 E := Tree_Successor(D) 8 if E.parent ≠ D then 9 Shift_Nodes(BST, E, E.right) 10 E.right := D.right 11 E.right.parent := E 12 end if 13 Shift_Nodes(BST, D, E) 14 E.left := D.left 15 E.left.parent := E 16 end if |
1 Shift_Nodes(BST, u, v) 2 if u.parent = NIL then 3 BST.root := v 4 else if u = u.parent.left then 5 u.parent.left := v 5 else 6 u.parent.right := v 7 end if 8 if v ≠ NIL then 9 v.parent := u.parent 10 end if |
h> प्रक्रिया ऊपर उल्लिखित 3 विशेष मामलों से संबंधित है। पंक्तियाँ 2-3 केस 1 से संबंधित हैं; पंक्ति 4-5 स्थिति 2 से संबंधित है और पंक्ति 6-16 स्थिति 3 के लिए है। सहायक कार्य नोड को बदलने के उद्देश्य से विलोपन एल्गोरिथ्म के भीतर उपयोग किया जाता है साथ बाइनरी सर्च ट्री में .[10]: 298 यह प्रक्रिया हटाने (और प्रतिस्थापन) को संभालती है से .
ट्रैवर्सल
एक BST तीन बुनियादी एल्गोरिदम के माध्यम से ट्री ट्रैवर्सल हो सकता है: इनऑर्डर ट्रैवर्सल, प्री-ऑर्डर ट्रैवर्सल और पोस्ट-ऑर्डर ट्रैवर्सल ट्री वॉक।[10]: 287
- इनऑर्डर ट्री वॉक: बाएं सबट्री से नोड्स पहले देखे जाते हैं, उसके बाद रूट नोड और राइट सबट्री।
- प्रीऑर्डर ट्री वॉक: रूट नोड को पहले विज़िट किया जाता है, उसके बाद बाएँ और दाएँ सबट्री को देखा जाता है।
- पोस्टऑर्डर ट्री वॉक: बाएं सबट्री से नोड्स पहले देखे जाते हैं, उसके बाद राइट सबट्री और अंत में रूट।
ट्री वॉक का पुनरावर्ती कार्यान्वयन निम्नलिखित है।[10]: 287–289
Inorder-Tree-Walk(x) if x ≠ NIL then Inorder-Tree-Walk(x.left) visit node Inorder-Tree-Walk(x.right) end if |
Preorder-Tree-Walk(x) if x ≠ NIL then visit node Preorder-Tree-Walk(x.left) Preorder-Tree-Walk(x.right) end if |
Postorder-Tree-Walk(x) if x ≠ NIL then Postorder-Tree-Walk(x.left) Postorder-Tree-Walk(x.right) visit node end if |
संतुलित बाइनरी सर्च ट्री
पुनर्संतुलन के बिना, बाइनरी सर्च ट्री में सम्मिलन या विलोपन अध: पतन का कारण बन सकता है, जिसके परिणामस्वरूप ऊँचाई होती है पेड़ की (जहां एक पेड़ में वस्तुओं की संख्या है), ताकि लुकअप प्रदर्शन एक रेखीय खोज की तुलना में खराब हो जाए।[14] खोज वृक्ष को संतुलित और ऊँचाई से घिरा रखना बाइनरी सर्च ट्री की उपयोगिता की कुंजी है। बाइनरी लॉगरिदमिक जटिलता के लिए पेड़ की ऊंचाई को बनाए रखने के लिए डिज़ाइन किए गए पेड़ के अद्यतन संचालन के दौरान इसे स्व-संतुलन तंत्र द्वारा प्राप्त किया जा सकता है।[4][15]: 50
ऊंचाई-संतुलित पेड़
एक पेड़ ऊँचाई-संतुलित होता है यदि बाएँ उप-वृक्ष और दाएँ उप-वृक्ष की ऊँचाइयों को एक स्थिर कारक द्वारा संबंधित होने की गारंटी दी जाती है। यह संपत्ति एवीएल पेड़ द्वारा पेश की गई थी और लाल-काले पेड़ द्वारा जारी रखी गई थी।[15]: 50–51 रूट से संशोधित लीफ नोड तक पथ पर सभी नोड्स की ऊंचाई को देखा जाना चाहिए और संभवतया पेड़ में प्रत्येक डालने और हटाने के ऑपरेशन पर सही किया जाना चाहिए।[15]: 52
वजन-संतुलित पेड़
भार-संतुलित वृक्ष में, संतुलित वृक्ष की कसौटी उपवृक्षों की पत्तियों की संख्या है। बाएँ और दाएँ सबट्री का वज़न सबसे अधिक भिन्न होता है .[16][15]: 61 हालांकि, अंतर एक अनुपात से बंधा हुआ है वजन की, एक मजबूत संतुलन की स्थिति के बाद से के साथ नहीं रखा जा सकता डालने और हटाने के संचालन के दौरान पुनर्संतुलन कार्य। वें>-वजन-संतुलित पेड़ संतुलन की स्थिति का एक पूरा परिवार देता है, जहां प्रत्येक बाएँ और दाएँ सबट्री में कम से कम एक अंश होता है सबट्री के कुल वजन का।[15]: 62
प्रकार
कई स्व-संतुलित बाइनरी सर्च ट्री हैं, जिनमें टी पेड़,[17] ट्रीप,[18] लाल-काले पेड़,[19] बी-पेड़,[20] 2-3 पेड़,[21] और स्प्ले पेड़ ।[22]
अनुप्रयोगों के उदाहरण
क्रमबद्ध करें
बाइनरी सर्च ट्री का उपयोग सॉर्टिंग एल्गोरिदम जैसे ट्री सॉर्ट में किया जाता है, जहां सभी तत्वों को एक ही बार में डाला जाता है और ट्री को इन-ऑर्डर फैशन में ट्रैवर्स किया जाता है।[23] BST का उपयोग जल्दी से सुलझाएं में भी किया जाता है।[24]
प्राथमिकता कतार संचालन
बाइनरी सर्च ट्री का उपयोग प्राथमिकता कतारों को लागू करने में किया जाता है, नोड की कुंजी को प्राथमिकताओं के रूप में उपयोग करते हुए। कतार में नए तत्व जोड़ना नियमित BST सम्मिलन ऑपरेशन का अनुसरण करता है लेकिन निष्कासन ऑपरेशन प्राथमिकता कतार के प्रकार पर निर्भर करता है:[25]
- यदि यह एक आरोही क्रम प्राथमिकता कतार है, तो सबसे कम प्राथमिकता वाले तत्व को BST के बाईं ओर ट्रैवर्सल के माध्यम से हटाया जाता है।
- यदि यह अवरोही क्रम की प्राथमिकता कतार है, तो उच्चतम प्राथमिकता वाले तत्व को BST के दाईं ओर ट्रैवर्सल के माध्यम से हटाया जाता है।
यह भी देखें
- खोज पेड़
- ज्वाइन-आधारित ट्री एल्गोरिदम
- इष्टतम बाइनरी सर्च ट्री
- बाइनरी सर्च ट्री की ज्यामिति
- त्रिगुट खोज वृक्ष
संदर्भ
- ↑ 1.0 1.1 Culberson, J.; Munro, J. I. (1 January 1989). "लंबे समय तक अपडेट के तहत बाइनरी सर्च ट्री के व्यवहार की व्याख्या: एक मॉडल और सिमुलेशन". The Computer Journal. 32 (1): 68–69. doi:10.1093/comjnl/32.1.68.
- ↑ Culberson, J.; Munro, J. I. (28 July 1986). "सटीक फिट डोमेन बाइनरी सर्च ट्री में मानक विलोपन एल्गोरिदम का विश्लेषण". Algorithmica. Springer Publishing, University of Waterloo. 5 (1–4): 297. doi:10.1007/BF01840390. S2CID 971813.
- ↑ P. F. Windley (1 January 1960). "पेड़, वन और पुनर्व्यवस्था". The Computer Journal. 3 (2): 84. doi:10.1093/comjnl/3.2.84.
- ↑ 4.0 4.1 Knuth, Donald (1998). "Section 6.2.3: Balanced Trees". कंप्यूटर प्रोग्रामिंग की कला (PDF). Vol. 3 (2 ed.). Addison-Wesley. pp. 458–481. ISBN 978-0201896855. Archived (PDF) from the original on 2022-10-09.
- ↑ Paul E. Black, "red-black tree", in Dictionary of Algorithms and Data Structures [online], Paul E. Black, ed. 12 November 2019. (accessed May 19 2022) from: https://www.nist.gov/dads/HTML/redblack.html
- ↑ Myers, Andrew. "CS 312 Lecture: AVL Trees". Cornell University, Department of Computer Science. Archived from the original on 27 April 2021. Retrieved 19 May 2022.
- ↑ Adelson-Velsky, Georgy; Landis, Evgenii (1962). "सूचना के संगठन के लिए एक एल्गोरिथ्म". Proceedings of the USSR Academy of Sciences (in русский). 146: 263–266. English translation by Myron J. Ricci in Soviet Mathematics - Doklady, 3:1259–1263, 1962.
- ↑ Pitassi, Toniann (2015). "CSC263: Balanced BSTs, AVL tree" (PDF). University of Toronto, Department of Computer Science. p. 6. Archived (PDF) from the original on 14 February 2019. Retrieved 19 May 2022.
- ↑ 9.0 9.1 Thareja, Reema (13 October 2018). "Hashing and Collision". सी का उपयोग कर डेटा संरचनाएं (2 ed.). Oxford University Press. ISBN 9780198099307.
- ↑ 10.00 10.01 10.02 10.03 10.04 10.05 10.06 10.07 10.08 10.09 10.10 10.11 10.12 10.13 10.14 10.15 Cormen, Thomas H.; Leiserson, Charles E.; Rivest, Ronald L.; Stein, Clifford (2001). एल्गोरिदम का परिचय (2nd ed.). MIT Press. ISBN 0-262-03293-7.
- ↑ R. A. Frost; M. M. Peterson (1 February 1982). "A Short Note on Binary Search Trees". The Computer Journal. Oxford University Press. 25 (1): 158. doi:10.1093/comjnl/25.1.158.
- ↑ Junzhou Huang. "एल्गोरिदम का डिजाइन और विश्लेषण" (PDF). University of Texas at Arlington. p. 12. Archived (PDF) from the original on 13 April 2021. Retrieved 17 May 2021.
- ↑ Ray, Ray. "बाइनरी सर्च ट्री". Loyola Marymount University, Department of Computer Science. Retrieved 17 May 2022.
- ↑ Thornton, Alex (2021). "ICS 46: Binary Search Trees". University of California, Irvine. Archived from the original on 4 July 2021. Retrieved 21 October 2021.
- ↑ 15.0 15.1 15.2 15.3 15.4 Brass, Peter (January 2011). उन्नत डेटा संरचना. Cambridge University Press. doi:10.1017/CBO9780511800191. ISBN 9780511800191.
- ↑ Blum, Norbert; Mehlhorn, Kurt (1978). "वजन-संतुलित पेड़ों में पुनर्संतुलन संचालन की औसत संख्या पर" (PDF). Theoretical Computer Science. 11 (3): 303–320. doi:10.1016/0304-3975(80)90018-3. Archived (PDF) from the original on 2022-10-09.
- ↑ Lehman, Tobin J.; Carey, Michael J. (25–28 August 1986). मेन मेमोरी डेटाबेस मैनेजमेंट सिस्टम्स के लिए इंडेक्स स्ट्रक्चर्स का अध्ययन. Twelfth International Conference on Very Large Databases (VLDB 1986). Kyoto. ISBN 0-934613-18-4.
- ↑ Aragon, Cecilia R.; Seidel, Raimund (1989), "Randomized Search Trees" (PDF), Proc. 30th Symp. Foundations of Computer Science (FOCS 1989), Washington, D.C.: IEEE Computer Society Press, pp. 540–545, doi:10.1109/SFCS.1989.63531, ISBN 0-8186-1982-1, archived (PDF) from the original on 2022-10-09
- ↑ Cormen, Thomas H.; Leiserson, Charles E.; Rivest, Ronald L.; Stein, Clifford (2001). "Red–Black Trees". Introduction to Algorithms (second ed.). MIT Press. pp. 273–301. ISBN 978-0-262-03293-3.
- ↑ Comer, Douglas (June 1979), "The Ubiquitous B-Tree", Computing Surveys, 11 (2): 123–137, doi:10.1145/356770.356776, ISSN 0360-0300, S2CID 101673
- ↑ Knuth, Donald M (1998). "6.2.4". कंप्यूटर प्रोग्रामिंग की कला. Vol. 3 (2 ed.). Addison Wesley. ISBN 9780201896855.
The 2–3 trees defined at the close of Section 6.2.3 are equivalent to B-Trees of order 3.
- ↑ Sleator, Daniel D.; Tarjan, Robert E. (1985). "स्व-समायोजन बाइनरी खोज पेड़" (PDF). Journal of the ACM. 32 (3): 652–686. doi:10.1145/3828.3835. S2CID 1165848.
- ↑ Narayanan, Arvind (2019). "COS226: Binary search trees". Princeton University School of Engineering and Applied Science. Archived from the original on 22 March 2021. Retrieved 21 October 2021 – via cs.princeton.edu.
- ↑ Xiong, Li. "बाइनरी सर्च ट्री और क्विकसॉर्ट के बीच एक कनेक्शन". Oxford College of Emory University, The Department of Mathematics and Computer Science. Archived from the original on 26 February 2021. Retrieved 4 June 2022.
- ↑ Myers, Andrew. "CS 2112 Lecture and Recitation Notes: Priority Queues and Heaps". Cornell University, Department of Computer Science. Archived from the original on 21 October 2021. Retrieved 21 October 2021.
अग्रिम पठन
- This article incorporates public domain material from Black, Paul E. "Binary Search Tree". Dictionary of Algorithms and Data Structures.
- Cormen, Thomas H.; Leiserson, Charles E.; Rivest, Ronald L.; Stein, Clifford (2001). "12: Binary search trees, 15.5: Optimal binary search trees". Introduction to Algorithms (2nd ed.). MIT Press. pp. 253–272, 356–363. ISBN 0-262-03293-7.
- Jarc, Duane J. (3 December 2005). "Binary Tree Traversals". Interactive Data Structure Visualizations. University of Maryland. Archived from the original on 27 February 2014. Retrieved 30 April 2006.
- Knuth, Donald (1997). "6.2.2: Binary Tree Searching". The Art of Computer Programming. Vol. 3: "Sorting and Searching" (3rd ed.). Addison-Wesley. pp. 426–458. ISBN 0-201-89685-0.
- Long, Sean. "Binary Search Tree" (PPT). Data Structures and Algorithms Visualization-A PowerPoint Slides Based Approach. SUNY Oneonta.
- Parlante, Nick (2001). "Binary Trees". CS Education Library. Stanford University. Archived from the original on 2022-01-30.
बाहरी संबंध
- 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)