saye7474 40 اشتراک گذاری ارسال شده در 2 آذر، ۱۳۹۳ یه تیکه از برنامه ام مونده.:{میخوام الگوریتمی برای معکوس کردن یه عبارت میانوندی بنویسم }مثل : 12+7^3+2*4 به 4*2+3^7+ 12 2 نقل قول لینک به دیدگاه
samisoft 47 اشتراک گذاری ارسال شده در 2 آذر، ۱۳۹۳ ی تیکه از برنامه ام مونده.:{میخوام ی الگوریتم برای معکوس کردن ی عبارت میانوندی بنویسم }مث :12+7^3+2*4 ب 4*2+3^7+ 12 بهم کنید................... به وسیله کدوم زبان برنامه نویسی؟ 3 نقل قول لینک به دیدگاه
سارا-افشار 36,437 اشتراک گذاری ارسال شده در 3 آذر، ۱۳۹۳ تبدیل infix به postfix در جاوا import java.io.IOException;public class InToPost { private Stack theStack; private String input; private String output = ""; public InToPost(String in) { input = in; int stackSize = input.length(); theStack = new Stack(stackSize); } public String doTrans() { for (int j = 0; j < input.length(); j++) { char ch = input.charAt(j); switch (ch) { case '+': case '-': gotOper(ch, 1); break; case '*': case '/': gotOper(ch, 2); break; case '(': theStack.push(ch); break; case ')': gotParen(ch); break; default: output = output + ch; break; } } while (!theStack.isEmpty()) { output = output + theStack.pop(); } System.out.println(output); return output; } public void gotOper(char opThis, int prec1) { while (!theStack.isEmpty()) { char opTop = theStack.pop(); if (opTop == '(') { theStack.push(opTop); break; } else { int prec2; if (opTop == '+' || opTop == '-') prec2 = 1; else prec2 = 2; if (prec2 < prec1) { theStack.push(opTop); break; } else output = output + opTop; } } theStack.push(opThis); } public void gotParen(char ch){ while (!theStack.isEmpty()) { char chx = theStack.pop(); if (chx == '(') break; else output = output + chx; } } public static void main(String[] args) throws IOException { String input = "1+2*4/5-7+3/6"; String output; InToPost theTrans = new InToPost(input); output = theTrans.doTrans(); System.out.println("Postfix is " + output + '\n'); } class Stack { private int maxSize; private char[] stackArray; private int top; public Stack(int max) { maxSize = max; stackArray = new char[maxSize]; top = -1; } public void push(char j) { stackArray[++top] = j; } public char pop() { return stackArray[top--]; } public char peek() { return stackArray[top]; } public boolean isEmpty() { return (top == -1); } }} 4 نقل قول لینک به دیدگاه
سارا-افشار 36,437 اشتراک گذاری ارسال شده در 3 آذر، ۱۳۹۳ برای تبدیل infix به postfix توی یه درخت دودویی , ابتدا برگها ، بعد ریشه ها را پیمایش باید بکنی در حالت تبدیل infix به prefix هم باید ریشه بعد برگها رو پیمایش کنی تو کتاب ساختمان داده ها خوب توضیح داده چطوری با پشته(stack) اینا رو پیاده سازی کنی ولی اینی که مثال زدی نه پیش وند نه پس وند 2 نقل قول لینک به دیدگاه
saye7474 40 مالک اشتراک گذاری ارسال شده در 3 آذر، ۱۳۹۳ به وسیله کدوم زبان برنامه نویسی؟ بازبان c# 2 نقل قول لینک به دیدگاه
saye7474 40 مالک اشتراک گذاری ارسال شده در 3 آذر، ۱۳۹۳ برای تبدیل infix به postfix توی یه درخت دودویی , ابتدا برگها ، بعد ریشه ها را پیمایش باید بکنی در حالت تبدیل infix به prefix هم باید ریشه بعد برگها رو پیمایش کنی تو کتاب ساختمان داده ها خوب توضیح داده چطوری با پشته(stack) اینا رو پیاده سازی کنی ولی اینی که مثال زدی نه پیش وند نه پس وند ممنونم سارا جووووون ب زبان c#نتونستم پیدا کنم خواستم خودم بنویسم تیکه اول واخرش ی معکوس میخاد عبارت میریزی تو پشته از اخر پیمایش میکنی نمیدونستم الگوریتمش چطوریه؟؟؟؟؟؟؟؟؟؟؟؟؟؟ بعدش مث پسوندی عمل میکنی ج نهایی ی معکوس میخاد 3 نقل قول لینک به دیدگاه
ارسال های توصیه شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .