ورود

View Full Version : استفاده از درخت در حل مسئله



Neroon
شنبه 20 تیر 1394, 10:00 صبح
سلام دوستان میخوام عبارت منطقی ای به شکل زیر رو حل کنم(با اطلاعات اولیه درست بودن یا نبودن"True or False" یک متغییر)، اما مشکل اینجاست که نمیدونم از چه الگوریتمی برای حل اون استفاده کنم، به نظر میاد بهترین راه برای حل این مسئله این باشه که به صورت یه درخت بهش نگاه کرد و تحلیل مسئله از پایین به بالا انجام بگیره، اما نمیدونم که این شکل نگاه به مسئله راه حل و یا الگوریتم خاصی داره یا خیر. قبل از مطرح کردن این سوال گشتی تو منابع خارجی زدم که به Abstract syntax tree برخوردم که بیشتر تو مسائل کامپایل کردن کاربرد داره و راهی ندیدم که تو حل برنامم بتونم ازش استفاده بکنم، چون میخوام تو هر مرحله از حل این مسئله از جواب هام استفاده کنم (برای مثال بعد از حل قسمت های 1و2و3و4 باید از اونها استفاده کنم و شکل رسم کنم) باید از الگوریتمی استفاده بشه که به صورت مرحله ای به سوال من جواب بده وگرنه فکر میکنم Reverse Polish notation میتونه مشکل وجود پرانتز هارو حل کنه. ممنون میشم کمکم کنید:قلب:.


مثالی از عبارت منطقی مورد نظر که کاربر وارد میکند

http://8pic.ir/images/tfkvyusp4956qxjh6eje.jpg (http://8pic.ir/)

Neroon
یک شنبه 21 تیر 1394, 15:42 عصر
بعد از کمی تحقیق متوجه شدم راه کار اصلی استفاده از Abstract syntax tree هست، اما تو پیاده سازی stack و Abstract syntax tree هیچ تجربه ای ندارم میخوام بدونم چطور برای همچین مسئله ای باید این دوتا مفهوم رو پیاده سازی کرد، دوستان حتی اگه اطلاعات کمی هم دارید لطفا بگید، شاید گره از کار ما باز شد. البته نکته ای هم که هست من این سوالو تو Stackoverflow (http://stackoverflow.com/posts/31366664/revisions) هم مطرح کردم ولی پاسخی که دادند خیلی کلی و به صورت interface هست که برای من که تا به حال AST پیاد سازی نکردم هیچ فایده ای نداشت.