**:
#include #includeview code#include
#include
#include
#include
#include
#include
#include
#include
#define i scanf
#define ol puts
#define o printf
#define f(a,b,c) for(a=b;a#define ff(a,b) for(a=0;a#define fg(a,b) for(a=b-1;a>=0;a--)
#define len 10000
#define max 0x06ffffff
#define v vectorusing
namespace
std;
typedef
struct
inputinfoinputinfo;
typedef
struct
node
node(
string d)
}node;
inputinfo infoarr[
60];
node *nodes[60
];int used[60
];node * insert_node(int
index);
void inorder(node*node);
node *root;
int cnt=0
;int
main()
f(i,
1,n+1)//
printf("%d %d\n",cnt,i);
root=nodes[i];
inorder(root->l);
printf("%s
",root->d.c_str());
inorder(root->r);
return0;
}node * insert_node(int
index)
else
if(r>0
)
if(used[r])
else
nodes[index]=node;
return
node;
}void inorder(node*node)
}
主要的點有兩個。首先是中綴表示式:
void inorder(node*node)}
inorder(root->l);對中序遍歷稍加修改,就可以得到像這樣的中綴表示式:(a+b)*(c*(-d))printf("%s
",root->d.c_str());
inorder(root->r);
其次是錄入輸入資訊後怎樣不浪費時間,巧妙的找到根節點是哪一行記錄。這裡我們用nodes陣列記錄樹形結點,用used陣列記錄是否訪問過,用cnt記錄形成結點的個數,然後遞迴呼叫insert_node,就可以及時找到根節點的記錄。
需要進步的點:做題速度太慢。
1003 中綴表示式轉字尾表示式
1003.中綴表示式轉字尾表示式 total 466accepted 89 time limit 1sec memory limit 256mb description 將中綴表示式 infix expression 轉換為字尾表示式 postfix expression 假設中綴表示式中的運算元均...
9 中綴表示式轉成字尾表示式
private static int add 1 private static int sub 1 private static int mul 2 private static int div 2 寫乙個方法,返回對應的優先順序數字 public static int getvalue strin...
4 中綴表示式的值
總時間限制 200ms 記憶體限制 1024kb 描述 人們熟悉的四則運算表示式稱為中綴表示式,例如 23 34 45 5 6 7 在程式語言中,可以利用堆疊的方法把中綴表示式轉換成保值的字尾表示式 又稱逆波蘭表示法 並最終變為計算機可以直接執行的指令,得到表示式的值。給定乙個中綴表示式,編寫程式,...