私は離散数学の課題の1つで真理値表ジェネレーターに取り組んでいます。操車場アルゴリズムを実装する必要があり、そうすることは完全に失われています。私の問題は、操車場アルゴリズムを実装することです。最初に、私が調べたリソース、次に問題、次に開始したコードを示します。
私が本当に必要としているもの..私はそれがたくさんを求めていることを知っています。しかし、これは操車場アルゴリズムのダムダウンバージョンです。o1 o2などの表記法を使用すると、ウィキペディアの例の一部で迷子になります。私が本当に必要としているのは、これを適用する方法を段階的に説明する人です。RPN表記がどのように機能するのかもわかりません。しかし、それについては今すぐ読むことができます。
- 操車場の実装:
http ://www.technical-recipes.com/2011/a-mathematical-expression-parser-in-java/#more-1658 - ウィキペディアの操車場アルゴリズム: http:
//en.wikipedia.org/wiki/Shunting-yard_algorithm - スタックオーバーフローに関する誰かの問題
操車場アルゴリズムの問題 - 基本的な実装
Javaでの真理値表の生成
入力例は次のとおりです
。A->B
(C)
:。F
ABCA-> BF
TTT--T --- T
TFT--F --- F
FTT--T --- T
FFT--T ---
FTTF--を示す入力を生成することになっています。T --- F
TFF--F --- F
FTF--T --- F
FFF--T --- F
import java.util.Stack;
import java.util.ArrayList;
public class ShuttingYard{
private static final char THEREFORE = '>';
private static final char AND = '&';
private static final char OR = '|';
public static String inputToReversePolishNotation(String input)
{
char[] tokens = input.toCharArray();
ArrayList<String> output = new ArrayList<String>();
Stack<String> oppStack = new Stack<String>();
for(int i = 0; i < tokens.length; i++)
{
}
return null;
}
public static boolean isLogicOperator(char input)
{
switch(input)
{
case THEREFORE:
return true;
case AND:
return true;
case OR:
return true;
default:
return false;
}
}
}