《数据结构与算法》上的一道作业题答案,本程序设计二叉树的构建,遍历以及打印等函数,能够实现自动分辨所输入表达式属于什么类型。
return 2;
if (!isOP(c) && isOP(d))
return 3;
else
return 0;
}
int _tmain(int argc, _TCHAR* argv[])
{
BinaryNode *BTree, *R;
string s;
cout << "请输入一个表达式:" << endl;
cin >> s;
string ss;
int temp;
if (s[0] == '(')
temp = choice(s[1], s[2]);
else
temp = choice(s[0], s[1]);
switch (temp)
{
case 1:{
ss = Exp_turn_and_turn(s);
R = Build_BinaryTree(BTree, ss);//构建一颗二叉树;
cout << "前缀表达式,后缀表达式,中缀表达式分别为:" << endl << endl; First(R);//前序遍历;
cout << endl;
Last(R);//后序遍历;
cout << endl;
Inn(R);//中序遍历(考虑了小括号)
cout << endl;
cout << endl << "二叉树树形打印" << endl;
Print(R);
break;
}
case 2:{
ss = Exp_turn(s);
R = Build_BinaryTree(BTree, ss);//构建一颗二叉树;
cout << "前缀表达式,后缀表达式,中缀表达式分别为:" << endl; First(R);//前序遍历;
cout << endl;
Last(R);//后序遍历;
cout << endl;
Inn(R);//中序遍历(考虑了小括号)
cout << endl;
cout << endl << "二叉树树形打印" << endl;
Print(R);
break;
}
case 3:{
ss = s;
R = Build_BinaryTree(BTree, ss);//构建一颗二叉树;
cout << "前缀表达式,后缀表达式,中缀表达式分别为:" << endl; First(R);//前序遍历;
cout << endl;
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库表达式构建二叉树(中缀,前缀,后缀)(6)在线全文阅读。
相关推荐: