দেওয়া ফরেস্টের জন্য, আমরা কিছু দিয়ে गये এজ "ড্যাশড" বানাই এবং বাকিগুলো স olid রাখি। প্রতিটি নন-লিফ নোড ঠিক একটি "স olid" এজ دار করে তার চাইল্ডের একটির সাথে। অন্যান্য সব চাইল্ড "ড্যাশড" এজ দিয়ে কানেক্টেড থাকবে।
আরো কনক্রিট হলে, যেকোনো দেওয়া ট্রিতে, রাইট-মোস্ট লিংক (তার চাইল্ডের সাথে) স olid রাখা উচিত, এবং তার অন্যান্য চাইল্ডের সাথে লিংকগুলো "ড্যাশড" বানানো উচিত।
ফলস্বরূপ, ট্রি ভাঙে যায় স olid পাথের একটি কালেকশনে। স olid পাথের রুটগুলো অন্য স olid পাথের সাথে একটি ড্যাশড এজ দিয়ে জয়েন করা হয়। একটি নতুন ডেটা স্ট্রাকচার যেনে "ভার্চুয়াল ট্রি" কনস্ট্রাক্ট করা হয়। প্রতিটি লিংকিং এবং কাটিং ট্রি T একটি ভার্চুয়াল ট্রি V দ্বারা রিপ্রেজেন্ট করা হয়, একই সেট অফ নোড ধারণ করে। কিন্তু মূল ট্রির প্রতিটি স olid পাথ মডিফাই বা কনভার্ট করা হয় একটি বাইনারি ট্রিতে ভার্চুয়াল ট্রিতে; বাইনারি ট্রিগুলো যত সম্ভব ব্যালেন্সড। এইভাবে, একটি ভার্চুয়াল ট্রি একটি (স olid) লেফট চাইল্ড, একটি (স olid) রাইট চাইল্ড এবং শূন্য বা অধিক (ড্যাশড) মিডল চাইল্ড নিয়ে গঠিত।
অন্য কথায়, একটি ভার্চুয়াল ট্রি হলো স olid বাইনারি ট্রির একটি হায়ারার্কি যা ড্যাশড এজ দিয়ে জয়েন করা। প্রতিটি নোড তার প্যারেন্টের तरफ একটি পয়েন্টার রাখে, এবং তার লেফট এবং রাইট চাইল্ডের দিকে।
আমরা জানি প্রতিটি পাথ একটি বাইনারি ট্রিতে কনভার্ট করা হয়েছে। একটি নোড (বলুন p) এর প্যারেন্ট (বলুন q) পথে স olid ট্রিতে সেই নোড (p) এর ইন-অর্ডার (সিমেট্রিক অর্ডার) সাকসেসর। যাইহোক, যদি p স olid সাব-ট্রিতে লাস্ট নোড হয় (সিমেট্রিক অর্ডারে) তবে এর প্যারেন্ট পথ হবে স olid সাব-ট্রির রুটের প্যারেন্ট যেটি এটিকে ধারণ করে।
ফরমালি, Parentpath(v) =Node(Inorder(v)+ 1).
লক্ষ্য করুন যে যেকোনো নোড v-এর জন্য, লেফট সাব-ট্রির সকল নোডের কম ইনঅর্ডার নম্বর থাকবে এবং রাইট সাব-ট্রির সকল নোডের বেশি ইনঅর্ডার নম্বর থাকবে। এটি নিশ্চিত করে যে লেফট সাবট্রির সকল নোড ডেসেন্ডেন্ট হিসেবে ডেনোট করা হয় এবং রাইট সাবট্রির সকল নোড অ্যানসেস্টর হিসেবে ডেনোট করা হয়। এইভাবে, একটি লেফট চাইল্ডের প্যারেন্ট (বাইনারি ট্রিতে) এক অ্যানসেস্টর (মূল ট্রিতে) হিসেবে বিবেচিত হয়। কিন্তু, একটি রাইট চাইল্ডের প্যারেন্ট (বাইনারি ট্রিতে) এক ডেসেন্ডেন্ট (মূল ট্রিতে) হিসেবে বিবেচিত হয়। এই অর্ডার, আমাদের কস্ট ইফেক্টিভলি অ্যাড করতে সাহায্য করে।
আমাদের কিছু ডেফিনিশন বা নোটেশন দরকার অগ্রসর হওয়ার জন্য।
Let mincost(x) be the cost of the node having the minimum key value among all descendants of x in the same solid sub-tree.
তবে প্রতিটি নোডে আমরা দুটি ফিল্ড স্টোর করি δcost(x) এবং δmin(x)। আমরা ডিফাইন করি,
δmin(x) =cost(x)−mincost(x). And, δcost(x) =cost(x)− cost(parent(x)) if x is associated with a solid parent δcost(x) =cost(x) otherwise (x is treated as a solid tree root)