
نوشته شده توسط
victoria
براي اين كار اگر پرانتز باز ديديم در آرايه جواب يك خانه رد كرده و انديس آن خانه را در استك ، push ميكنيم اگر عملوند ديديم آن را در رشته جواب مي نويسيم اگر عملگر ديديم آخرين انديس كه در استك، push نموده بوديم را از استك pop كرده و در آن انديس در رشته جواب عمگرمان را مينويسيم اگر پرانتز بسته نيز ديديم از آن ميگذريم.
البته براي اين كار يك الگوريتم بهتر نيز هست كه اگر خواستيد براتون ميذارم. در ضمن اگر در نوشتن كدش به مشكلي برخورد كرديد بگيد تا كدشم براتون بذارم.
ممنون ، گفتید در صورتی که به عملگر رسیدم ، از استک اندیس را برداشته و در آرایه جواب در اندیسی که از استک برداشتیم قرارش میدیم. خوب در صورتی که از پرانتز استفاده نکردیم .
چه جوری عمل کنیم در زیر با استفاده از برنامه ای که یکی از دوستان گذاشتم چند عدد بدون پرانتز را تست کردم . ولی نتیجه ای نگرفتم
1+2*9*9+2-2==> ++1*2*99-22
6+3*2==>+6*32
9+2+3 ==> +9+23