ভার্চুয়াল ট্রিতে, কিছু এজ স olid বিবেচিত হয় এবং কিছু ড্যাশড। সাধারণ স্প্লে শুধু স olid ট্রিতে করা হয়। ভার্চুয়াল ট্রিতে একটি নোড y-এ splay করার জন্য, নিচের মেথড বাস্তবায়িত হয়।
অ্যালগরিদম ট্রিয়ে তিনবার তাকায়, একবার প্রতিটি পাসে, এবং এটিকে পরিবর্তন করে। প্রথম পাসে, স olid সাবট্রিতে শুধু splaying করে, নোড y থেকে শুরু করে, y থেকে ওভারঅল ট্রির রুট পর্যন্ত পাথ ড্যাশড হয়ে যায়। এই পাথ স্প্লিসিং দিয়ে স olid করা হয়। নোড y-এ একটি ফাইনাল splay এখন y কে ট্রির রুট বানাবে। কম অনौপচারিকভাবে, অ্যালগরিদম নিচের মতো ব্যাখ্যা করা হয়:
Splay(y) এর জন্য অ্যালগরিদম
Pass 1 ভার্চুয়াল ট্রিতে ওপরে চলে যান, কিন্তু splaying শুধু স olid সাব-ট্রিতে করা হয়। এই পাসের শেষে, y থেকে রুট পর্যন্ত পাথ ড্যাশড হয়ে যায়।
Pass 2 নোড y থেকে ওপরে চলে যান, y-র প্রতিটি প্রপার অ্যানসেস্টরে স্প্লিসিং করে। এই স্টেপের শেষে, y থেকে রুট পর্যন্ত পাথ স olid হয়ে যায়। सिवা যা, নোড y এবং মূল ট্রিতে এর সকল চাইল্ড (পাস ১-এর আগের) এখন লেফট চাইল্ড হয়ে যায়।
Pass 3 নোড y থেকে রুট পর্যন্ত ওপরে চলে যান, নরমাল ফ্যাশনে splaying করে।
এটি আমাদের প্রায়োর নলেজ ব্যবহার করতে দেয় আমাদের প্রোবাবিলিটি এস্টিমেশন উন্নত করতে। দেওয়া সেট অফ লিফের জন্য। তাই লক্ষ্য হলো মিনিমাম এক্সটার্নাল পাথ ওয়েটের একটি ট্রি কনস্ট্রাক্ট করা।
একটি উদাহরণ নিচে দেওয়া হলো
লেটার ফ্রিকোয়েন্সি টেবিল
| Letter | z | k | m | c | u | d | l | e |
| Frequency | 2 | 7 | 24 | 32 | 37 | 42 | 42 | 120 |
হাফম্যান কোড
| Letter | Freq | Code | Bits |
|---|---|---|---|
| e | 120 | 0 | 1 |
| d | 42 | 101 | 3 |
| l | 42 | 110 | 3 |
| u | 37 | 37 100 | 3 |
| c | 32 | 1110 | 4 |
| m | 24 | 11111 | 5 |
| k | 7 | 111101 | 6 |
| z | 2 | 111100 | 6 |
উপরোক্ত উদাহরণের জন্য হাফম্যান ট্রি নিচে দেওয়া হলো
