当前位置: 首页 > news >正文

网页设计与网站建设案例课堂中铁建设集团有限公司董事长

网页设计与网站建设案例课堂,中铁建设集团有限公司董事长,铜山网站开发,桂林象鼻山附近的酒店目录 树结构及其算法-二叉运算树 C代码 树结构及其算法-二叉运算树 二叉树的应用实际上相当广泛,例如表达式之间的转换。可以把中序表达式按运算符优先级的顺序建成一棵二叉运算树(Binary Expression Tree,或称为二叉表达式树)…

目录

树结构及其算法-二叉运算树

C++代码


树结构及其算法-二叉运算树

二叉树的应用实际上相当广泛,例如表达式之间的转换。可以把中序表达式按运算符优先级的顺序建成一棵二叉运算树(Binary Expression Tree,或称为二叉表达式树)。之后按二叉树的特性进行前、中、后序的遍历,即可得到前、中、后序表达式,建立的方法可根据以下两种规则来进行操作:

  1. 考虑表达式中运算符的结合性与优先权,再适当地加上括号。
  2. 由最内层的括号逐步向外,利用运算符当树根,左边操作数当左子树,右边操作数当右子树,其中优先权最低的运算符作为此二叉运算树的树根。

C++代码

#include<iostream>
using namespace std;struct TreeNode {int data;TreeNode* leftNode;TreeNode* rightNode;TreeNode() {this->data = ' ';this->leftNode = nullptr;this->rightNode = nullptr;}TreeNode(int tempData, TreeNode* tempLeftNode = nullptr, TreeNode* tempRightNode = nullptr) {this->data = tempData;this->leftNode = tempLeftNode;this->rightNode = tempRightNode;}
};namespace Tree {TreeNode* CreateExpression(char* sequence, int index, int arraySize) {TreeNode* _TreeNode;if (sequence[index] == ' ' || index >= arraySize)return nullptr;else{_TreeNode = new TreeNode((int)sequence[index]);_TreeNode->leftNode = CreateExpression(sequence, 2 * index, arraySize);_TreeNode->rightNode = CreateExpression(sequence, 2 * index + 1, arraySize);return _TreeNode;}}void Preorder(TreeNode* tempTree) {if (tempTree != nullptr) {cout << (char)tempTree->data << " ";Preorder(tempTree->leftNode);Preorder(tempTree->rightNode);}}void Inorder(TreeNode* tempTree) {if (tempTree != nullptr) {Inorder(tempTree->leftNode);cout << (char)tempTree->data << " ";Inorder(tempTree->rightNode);}}void Postorder(TreeNode* tempTree) {if (tempTree != nullptr) {Postorder(tempTree->leftNode);Postorder(tempTree->rightNode);cout << (char)tempTree->data << " ";}}int Condition(char tempOperator, int num1, int num2) {switch (tempOperator){case '*':return (num1 * num2);case '/':return (num1 / num2);case '+':return (num1 + num2);case '-':return (num1 - num2);case '%':return (num1 % num2);}}int Answer(TreeNode* tempTreeNode) {int num1;int num2;if (tempTreeNode->rightNode == nullptr && tempTreeNode->leftNode == nullptr)return tempTreeNode->data - 48;else {num1 = Answer(tempTreeNode->leftNode);num2 = Answer(tempTreeNode->rightNode);return Condition((char)tempTreeNode->data, num1, num2);}}
};int main() {char data1[]{ ' ', '+', '*', '%', '6', '3', '9', '5' };TreeNode* treeNode;treeNode = Tree::CreateExpression(data1, 1, 8);cout << "前序遍历:" << endl;Tree::Preorder(treeNode);cout << endl;cout << "中序遍历:" << endl;Tree::Inorder(treeNode);cout << endl;cout << "后序遍历:" << endl;Tree::Postorder(treeNode);cout << endl;cout << "二叉运算树结果值:" << endl;cout << Tree::Answer(treeNode) << endl;return 0;
}

结果输出

http://www.yayakq.cn/news/711869/

相关文章:

  • 免费做简单网站黄页广告网站
  • 烟台招远网站建设曲阜官方建设局网站
  • 分类网站怎么做seo百度地图放到网站上
  • 网站建设生产或运营南京seo排名扣费
  • 金泉网做网站找谁优秀网站设计模板
  • 不断改进网站建设深圳 服装 网站建设
  • 苏州网站建设制作工作室氪星人 wordpress
  • 手机建站平台微点手赚中国万网陈峰欣
  • 携程网站建设目的网站开发的进度安排
  • 基金网站制作asp网站怎么运行
  • 网站建设需要注意哪些细节阿里云如何建立网站
  • 丰润区建设局网站新华书店的做的数字阅读网站
  • 教育网站前置审批系统仁寿县建设局网站
  • 烟台做网站优化西安定制网站建设公司哪家好
  • 网站模板免费下载phpwordpress页面找不到404
  • 阿里巴巴官网网站南昌微信网站开发公司
  • 午夜资源站今天的新闻直播
  • wap网站发布在喵窝网站怎么做图
  • 惠普电脑网站建设策划方案深圳创业补贴申请条件
  • ps设计素材网站滨州seo排名
  • 北京品牌建设网站标书制作技巧
  • 自动成交型网站win2003服务器网站管理工具
  • 付费网站源码最好的赣州网站建设
  • 工程建设有限公司经营范围郑州seo顾问
  • 郴州网站推广网站页面设计尺寸
  • 网站搜索防止攻击做网站的流程 优帮云
  • 网站设计 ipadid97网站怎么做的
  • 南通网络公司网站制作网页用什么进行页面布局
  • 铁岭网站建设公司品牌营销策划推广
  • 外贸网站如何做推广苏州天元建设集团有限公司是国企还是央企