वर्चुअल ट्री में, कुछ एज को सॉलिड (Solid) माना जाता है और कुछ को डैश्ड (Dashed)। सामान्य स्प्लेिंग (Splaying) केवल सॉलिड ट्रीज़ में की जाती है। वर्चुअल ट्री में नोड y पर स्प्ले करने के लिए, निम्न विधि लागू की जाती है।
एल्गोरिदम ट्री को तीन बार देखता है, प्रत्येक पास में एक बार, और इसे बदलता है। पहले पास में, केवल सॉलिड ट्रीज़ में स्प्ले करके, नोड y से शुरू करके, y से समग्र ट्री के रूट तक का पथ डैश्ड बन जाता है। इस पथ को स्प्लिसिंग (Splicing) द्वारा सॉलिड बनाया जाता है। नोड y पर एक अंतिम स्प्ले अब y को ट्री का रूट बना देगा। कम अनौपचारिक रूप से, एल्गोरिदम को निम्नानुसार समझाया गया है:
Splay(y) के लिए एल्गोरिदम (Algorithm for Splay(y))
पास 1 (Pass 1) वर्चुअल ट्री पर ऊपर जाएं, लेकिन स्प्लेिंग केवल सॉलिड सब-ट्री के भीतर की जाती है। इस पास के अंत में, y से रूट तक का पथ डैश्ड हो जाता है।
पास 2 (Pass 2) नोड y से ऊपर जाएं, y के प्रत्येक उचित पूर्वज (Proper Ancestor) पर स्प्लिसिंग करें। इस चरण के अंत में, y से रूट तक का पथ सॉलिड हो जाता है। सिवाय इसके कि, नोड y और मूल ट्री (पास 1 से पहले वाले) में इसके सभी बच्चे अब लेफ्ट चाइल्ड बन जाते हैं।
पास 3 (Pass 3) नोड y से रूट तक ऊपर जाएं, सामान्य तरीके से स्प्ले करें।
यह हमें पूर्व ज्ञान का उपयोग करके हमारी संभावना अनुमानों को सुधारने की अनुमति देता है। दिए गए लीफ के सेट के लिए। इसलिए लक्ष्य न्यूनतम बाहरी पथ वजन (Minimum External Path Weight) के साथ एक ट्री का निर्माण करना है।
एक उदाहरण नीचे दिया गया है
अक्षर आवृत्ति तालिका (Letter Frequency Table)
| अक्षर | z | k | m | c | u | d | l | e |
| आवृत्ति | 2 | 7 | 24 | 32 | 37 | 42 | 42 | 120 |
हफमैन कोड (Huffman Code)
| अक्षर | आवृत्ति | कोड | बिट्स |
|---|---|---|---|
| e | 120 | 0 | 1 |
| d | 42 | 101 | 3 |
| l | 42 | 110 | 3 |
| u | 37 | 100 | 3 |
| c | 32 | 1110 | 4 |
| m | 24 | 11111 | 5 |
| k | 7 | 111101 | 6 |
| z | 2 | 111100 | 6 |
उपरोक्त उदाहरण के लिए हफमैन ट्री (Huffman Tree) नीचे दी गई है
