//用陣列實現樹
#include
#include
#include
#define n 10000
#define optd 1
#define optr 2
using namespace std;
int treel[n], treer[n];
class node ;
node opt[n];
int noden;
char formula[1000];
int buildtree(int ld, int rd)
int pas=-1, pmd=-1;//分別表示加減號, 乘除號所在的位置
int paren=0;//記錄左括弧相對於右括弧出現的數目
for(i=ld; i }
if(pas<0) pas=pmd;
if(pas<0) //說明沒有找到括弧外邊的運算子,則脫掉一對括弧重新尋找
return buildtree(ld+1, rd-1);
int u=++noden;
opt[u].flag=optr;//表示儲存操作符
opt[u].ch=formula[pas];
treel[u]=buildtree(ld, pas);
treer[u]=buildtree(pas+1, rd);
return u; }
void printtree(int cur)//中序輸出表示式樹
}
int main()
return 0;
} //用鍊錶實現樹
#include
#include
#include
#define n 10000
#define optd 1
#define optr 2
using namespace std;
class node ;
char formula[1000];
void buildtree(node* &t, int ld, int rd)
int pas=-1, pmd=-1;//分別表示加減號, 乘除號所在的位置
int paren=0;//記錄左括弧相對於右括弧出現的數目
for(i=ld; i }
if(pas<0) pas=pmd;
if(pas<0) //說明沒有找到括弧外邊的運算子,則脫掉一對括弧重新尋找
return buildtree(t, ld+1, rd-1);
t=new node();
t->flag=optr;//表示儲存操作符
t->ch=formula[pas];
buildtree(t->lchild, ld, pas);
buildtree(t->rchild, pas+1, rd); }
void printtree(node *t)//中序輸出表示式樹
}
int main()
return 0; }
表示式建樹
用陣列實現樹 include include include define n 10000 define optd 1 define optr 2 using namespace std int treel n treer n class node node opt n int noden char...
表示式 表示式樹 表示式求值
總時間限制 1000ms 記憶體限制 65535kb 描述 眾所周知,任何乙個表示式,都可以用一棵表示式樹來表示。例如,表示式a b c,可以表示為如下的表示式樹 a b c 現在,給你乙個中綴表示式,這個中綴表示式用變數來表示 不含數字 請你將這個中綴表示式用表示式二叉樹的形式輸出出來。輸入輸入分...
中綴表示式 字首表示式 字尾表示式
中綴表示式 中綴記法 中綴表示式是一種通用的算術或邏輯公式表示方法,操作符以中綴形式處於運算元的中間。中綴表示式是人們常用的算術表示方法。雖然人的大腦很容易理解與分析中綴表示式,但對計算機來說中綴表示式卻是很複雜的,因此計算表示式的值時,通常需要先將中綴表示式轉換為字首或字尾表示式,然後再進行求值。...