В этой статье описывается метод преобразования экспрессии Infix в выражения суффиксов в структурах и алгоритмах Java. Поделитесь этим для вашей ссылки, следующим образом:
// StackPublic Class Stackx {private int top; частный Char [] Stackarray; частный int maxsize; // Constructor public Stackx (int maxSize) {this.maxsize = maxSize; this.top = -1; stackarray = new char [this.maxsize]; } // Поместите элемент поверх стека public void push (char push) {Stackarray [++ top] = push; } // взять пункт с вершины стека public char pop () {return stackarray [top--]; } // Посмотрите верхний элемент из Stack public char peek () {return stackarray [top]; } // Посмотрите символ в индексе N Public Char Peekn (int index) {return stackarray [index]; } // true, если стек пуст в общедоступном логическом iSempty () {return (top == -1); } // return stack size public int size () {return top+1; }} // IntoPostPublic Class IntoPost {private Stackx Mystack; частная строковая вход; частная строка output = ""; // Конструктор Public IntoPost (String Input) {this.Input = input; mystack = new Stackx (this.input.length ()); } // Сделать перевод в PostFix public String string dotrans () {for (int i = 0; i <input.length (); i ++) {char ch = input.charat (i); Switch (ch) {case '+': case '-': this.getOper (ch, 1); перерыв; case '*': case '/': this.getoper (ch, 2); перерыв; case '(': this.getoper (ch, 3); break; case ')': this.getoper (ch, 4); перерыв; по умолчанию: this.output = this.output + ch; }} while (! this.mystack.isempty ()) {this.output = this.output + this.mystack.pop (); } вернуть это. Output; } // Получить оператора от ввода public void getOper (char ch, int proct1) {char temp; if (this.mystack.isempty () || prect1 == 3) {this.mystack.push (ch); } else if (prect1 == 4) {while (! this.mystack.isempty ()) {temp = this.mystack.pop (); if (temp == '(') contination; this.output = this.output + temp;}} else if (proct1 == 1) {temp = this.mystack.peek (); if (temp == '(') this.mystack.push (ch); else {this.output = output + this.mystack.pop (); this.mystack.peek (); [] args) {str = "((a+b)*c) -d";PS: Реализация алгоритма не очень идеальна, и будут возникнуть некоторые сложные ошибки анализа выражения. Напишите это как празднование!
Для получения дополнительной информации об алгоритмах Java, читатели, которые заинтересованы в этом сайте, могут просмотреть темы: «Учебное пособие по структуре данных Java и алгоритм», «Сводка операции Java Dom Node», «Сводка Java File и каталог
Я надеюсь, что эта статья будет полезна для всех Java Programming.