কম্পিউটার টিউটোরিয়াল

ডেটা স্ট্রাকচরে ভার্চুয়াল ট্রিতে Splay

ভার্চুয়াল ট্রিতে, কিছু এজ স 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 করে।

এটি আমাদের প্রায়োর নলেজ ব্যবহার করতে দেয় আমাদের প্রোবাবিলিটি এস্টিমেশন উন্নত করতে। দেওয়া সেট অফ লিফের জন্য। তাই লক্ষ্য হলো মিনিমাম এক্সটার্নাল পাথ ওয়েটের একটি ট্রি কনস্ট্রাক্ট করা।

একটি উদাহরণ নিচে দেওয়া হলো

লেটার ফ্রিকোয়েন্সি টেবিল

Letterzkmcudle
Frequency272432374242120

হাফম্যান কোড

LetterFreqCodeBits
e12001
d421013
l421103
u3737 1003
c3211104
m24111115
k71111016
z21111006

উপরোক্ত উদাহরণের জন্য হাফম্যান ট্রি নিচে দেওয়া হলো

ডেটা স্ট্রাকচরে ভার্চুয়াল ট্রিতে Splay

  1. ডেটা স্ট্রাকচরে এক্সপ্রেশন ট্রি কনস্ট্রাক্ট করার অ্যালগরিদম

  2. ডেটা স্ট্রাকচারে বাইনারি ট্রি ADT

  3. ডেটা স্ট্রাকচরে BSP ট্রি

  4. ডেটা স্ট্রাকচরে রেঞ্জ ট্রি