PDA

نسخه کامل مشاهده نسخه کامل : پیمایش درخت



Mina Mehdizadeh
08-05-2008, 14:36
سلام.....در مورد درخت ها توی ++cسوال دارم.....
اگر پیمایش پیشوندی و میانوندی یک درخت دودویی را داشته باشیم چطوری میتونیم برنامه ای بنویسیم که پیمایش پسوندیش را چاپ کنه ؟...ممنون

iman_n21
08-05-2008, 14:57
برنامش تو كتاب ساختمان داده هورويتز هست البته به زبان پاسكــــال
فكـــــر كنم تو كتاب سيمور ليپ شوتز هم باشه ( الگوريتمش )

Mina Mehdizadeh
08-05-2008, 16:33
حالا غیر از کتاب هیچ سایتی به نظرتون نمیرسه که بتونه کمکم کنه ؟
( من خیلی وقت ندارم....دنبال یه راهه سریع میگردم ....!!!!)
اگه همینطوری هم می گفتید که الگوریتمش باید چیکار کنه خیلی خوب میشد....:31:

iman_n21
10-05-2008, 12:31
اگه همینطوری هم می گفتید که الگوریتمش باید چیکار کنه خیلی خوب میشد....:31:

- درخت جديدى درست ميكنى و اون رو به صورت زير پر ميكنى :

- از اولين حرف پيمايش preorder ريشه رو بدست ميارى

- با ريشه بدست اومده و با توجه به inOrder زير درخت چپ و راست درخت فعلى رو مشخص ميكنى

- هر گرهى كه مكان درستش مشخص شد رو از هر دو پيمايش حذف ميكنى
توجه : براى تشخيص مكان درست ميتونى از برسى مكان گره در هر دو پيمايش استفاده كنى !
مثالا اگر در preOrder ترتيب BC و در inOrder هم ترتيب BC باشه نتيجه ميگيريم C فرزند راست B هست

- عمليات رو تا جايى كه گرهى باقى نمونه ادامه ميدى

Mina Mehdizadeh
10-05-2008, 17:30
خیلی خیلی ممنون.......:11:
(راستش خودم به یه الگوریتم شبیه این چیزی که شما گفتید رسیده بودم ...ولی با توضیحات شما تکمیل شد...)

iman_n21
10-05-2008, 20:25
خیلی خیلی ممنون.......:11:
(راستش خودم به یه الگوریتم شبیه این چیزی که شما گفتید رسیده بودم ...ولی با توضیحات شما تکمیل شد...)

خواهش ميكنم
موفق باشيد