• پایان فعالیت بخشهای انجمن: امکان ایجاد موضوع یا نوشته جدید برای عموم کاربران غیرفعال شده است

spliting a binary search tree

sasan_66

کاربر تازه وارد
تاریخ عضویت
18 جولای 2006
نوشته‌ها
450
لایک‌ها
0
سلام
الگوريتم spliting a binary search tree رو مي خواستم
البته توي كتاب horowitz هستش ولي يكيم باهاش مشكل داشتم
ممنون
 

Arash_j13

Registered User
تاریخ عضویت
18 فوریه 2005
نوشته‌ها
778
لایک‌ها
2
محل سکونت
مشهد
اگه منظورتون تابع split از کلاس BST هست من نگاهش کردم الگوریتمش رو کامل گفته کدش هم هست کجاش رو مشکل دارید زیاد پیچیده نیست
 

sasan_66

کاربر تازه وارد
تاریخ عضویت
18 جولای 2006
نوشته‌ها
450
لایک‌ها
0
سلام
تو برنامه اش مشكل دارم
فرض كن يه درخت باينري جستجوي ساده داريم كه داده ي ريشه ي اون 30 و داده ي فرزند چپش 5 و آخر سر هم داده ي فرزند سمت راستش 40 هستش. حالا مقدار i هم برابر 30 است. خوب حالا طبق توضيحي كه براي split كردن داده فرزند چپ بايد بره تو B و فرزند راست بره تو C.
حالا تو خود برنامه (براي راحتي گره ها رو با عدد هاي داخلشون در نظر مي گيرم)
t -> leftchild به گره 5 اشاره مي كنه در نتيجه L -> rightchild هم به 5 اشاره خواهد كرد.
t -> rightchild به گره 40 اشاره مي كنه در نتيجه R-> leftchild هم به 40 اشاره خواهد كرد.
x هم كه برابر 30 خوهد شد.
حالا گير كارم تو 2 خط آخر اين قسمته iif هستش.
کد:
B.root = Y -> RightChild
C.root = Z -> LeftChild
Y -> RightChild به كجا اشاره مي كنه كه اومده آدرس اون جارو گذاشته تو B.root
همچنين Z -> LeftChild
با تشكر
 

Arash_j13

Registered User
تاریخ عضویت
18 فوریه 2005
نوشته‌ها
778
لایک‌ها
2
محل سکونت
مشهد
y همون اول با new ساخته شده و L مقدارش با Y برابره همین طور Z هم با R به خط هفتم و هشتم کد نگاه کنید
اخر هر دو خط این انتصاب ها صورت گرفته تو این مثال شما در حقیقت دو تا درخت تک گره ای می سازه B با یه گره که مقدارش 5 هست و C با یه گره که مقدارش 40 هست
 
بالا