表示式建樹

2021-09-20 13:38:55 字數 1532 閱讀 2445

//用陣列實現樹

#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 現在,給你乙個中綴表示式,這個中綴表示式用變數來表示 不含數字 請你將這個中綴表示式用表示式二叉樹的形式輸出出來。輸入輸入分...

中綴表示式 字首表示式 字尾表示式

中綴表示式 中綴記法 中綴表示式是一種通用的算術或邏輯公式表示方法,操作符以中綴形式處於運算元的中間。中綴表示式是人們常用的算術表示方法。雖然人的大腦很容易理解與分析中綴表示式,但對計算機來說中綴表示式卻是很複雜的,因此計算表示式的值時,通常需要先將中綴表示式轉換為字首或字尾表示式,然後再進行求值。...