2013-05-19 178 views
4

我想寫一個C++程序來解析下面形式的輸入文件。解析算法的時間複雜度

input $input1, $in2, $anotherinput, $a, $b, $x; 
output $out1, $out2, $k; 
$xyz = $a + $b + $x; 
$k = $xyz - $in2; 
........ 
........ 
....... 
$out1 = $k + $b; 

輸入文件可以有超過10,000行。但大多數線路的形式是$A = $B + $C。在時間複雜度方面,這將是最有效的解析算法。

+1

編寫語法並使用bison或yacc構建解析器。 –

回答

3

尋找最簡單的算法。我建議遞歸下降prasing。

3

這個問題並不完全清楚,但幾乎所有我能想到的方法都具有時間複雜度O(N),其中N是文件中的行數。你所描述的語言非常簡單。

+0

您的意思是遞歸下降解析器和運算符優先解析器在這種情況下會給出幾乎相同的時間複雜度。 – Thomas