saye7474 40 ارسال شده در 23 بهمن، 2014 یه تیکه از برنامه ام مونده.:{میخوام الگوریتمی برای معکوس کردن یه عبارت میانوندی بنویسم }مثل : 12+7^3+2*4 به 4*2+3^7+ 12 2
samisoft 47 ارسال شده در 23 بهمن، 2014 ی تیکه از برنامه ام مونده.:{میخوام ی الگوریتم برای معکوس کردن ی عبارت میانوندی بنویسم }مث :12+7^3+2*4 ب 4*2+3^7+ 12 بهم کنید................... به وسیله کدوم زبان برنامه نویسی؟ 3
سارا-افشار 36437 ارسال شده در 24 بهمن، 2014 تبدیل 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
سارا-افشار 36437 ارسال شده در 24 بهمن، 2014 برای تبدیل infix به postfix توی یه درخت دودویی , ابتدا برگها ، بعد ریشه ها را پیمایش باید بکنی در حالت تبدیل infix به prefix هم باید ریشه بعد برگها رو پیمایش کنی تو کتاب ساختمان داده ها خوب توضیح داده چطوری با پشته(stack) اینا رو پیاده سازی کنی ولی اینی که مثال زدی نه پیش وند نه پس وند 2
saye7474 40 مالک ارسال شده در 24 بهمن، 2014 برای تبدیل infix به postfix توی یه درخت دودویی , ابتدا برگها ، بعد ریشه ها را پیمایش باید بکنی در حالت تبدیل infix به prefix هم باید ریشه بعد برگها رو پیمایش کنی تو کتاب ساختمان داده ها خوب توضیح داده چطوری با پشته(stack) اینا رو پیاده سازی کنی ولی اینی که مثال زدی نه پیش وند نه پس وند ممنونم سارا جووووون ب زبان c#نتونستم پیدا کنم خواستم خودم بنویسم تیکه اول واخرش ی معکوس میخاد عبارت میریزی تو پشته از اخر پیمایش میکنی نمیدونستم الگوریتمش چطوریه؟؟؟؟؟؟؟؟؟؟؟؟؟؟ بعدش مث پسوندی عمل میکنی ج نهایی ی معکوس میخاد 3
ارسال های توصیه شده