【问题的描述】一个表达式和一棵二叉树之间,存在着自然的对应关系。
写一个程序,实现基于二叉树表示的算术表达式Expression的操作。
【基本要求】【一】【必做部分】假设算术表达式Expression内可以含有变量(a-z),常量(0-9)和二元运算符(+,-,*,/,^(乘幂))。
实现以下操作:(1)ReadExpr(E)――以字符序列的形式输入语法正确的前缀表达式并构造表达式E。
(2)WriteExpr(E)――用带括号的中缀表达式输出表达式E。
(3)Assign(V,c)――实现对变量V的赋值(V=c),变量的初值为0。
(4)Value(E)――对算术表达式E求值。
(5)CompoundExpr(p,E1,E2)――构造一个新的复合表达式(E1)p(E2)。
【二】【选做部分】(1)以表达式的原书写形式输入,支持大于0的正整数常量;
(2)增加常数合并操作MergeConst(E)——合并表达式E中所有常数运算。
例如,对表达式E=(2+3-a)*(b+3*4)进行合并常数的操作后,求得E=(5-a)*(b+12)【测试数据】1) 分别输入0;
a;-91;+a*bc;+*5x2*8x;+++*3^*2^x2x6并输出。
2) 每当输入一个表达式后,对其中的变量赋值,然后对表达式求值。
3) 还有很多测试的数据,详细请见附上的文件Test.txt。
1
PID电机控制目录第1章数字PID控制1.1PID控制原理1.2连续系统的模拟PID仿真1.3数字PID控制1.3.1位置式PID控制算法1.3.2连续系统的数字PID控制仿真1.3.3离散系统的数字PID控制仿真1.3.4增量式PID控制算法及仿真1.3.5积分分离PID控制算法及仿真1.3.6抗积分饱和PID控制算法及仿真1.3.7梯形积分PID控制算法1.3.8变速积分PID算法及仿真1.3.9带滤波器的PID控制仿真1.3.10不完全微分PID控制算法及仿真1.3.11微分先行PID控制算法及仿真1.3.12带死区的PID控制算法及仿真1.3.13基于前馈补偿的PID控制算法及仿真1.3.14步进式PID控制算法及仿真第2章常用的PID控制系统2.1单回路PID控制系统2.2串级PID控制2.2.1串级PID控制原理2.2.2仿真程序及分析2.3纯滞后系统的大林控制算法2.3.1大林控制算法原理2.3.2仿真程序及分析2.4纯滞后系统的Smith控制算法2.4.1连续Smith预估控制2.4.2仿真程序及分析2.4.3数字Smith预估控制2.4.4仿真程序及分析第3章专家PID控制和模糊PID控制3.1专家PID控制3.1.1专家PID控制原理3.1.2仿真程序及分析3.2模糊自适应整定PID控制3.2.1模糊自适应整定PID控制原理3.2.2仿真程序及分析3.3模糊免疫PID控制算法3.3.1模糊免疫PID控制算法原理3.3.2仿真程序及分析第4章神经PID控制4.1基于单神经元网络的PID智能控制4.1.1几种典型的学习规则4.1.2单神经元自适应PID控制4.1.3改进的单神经元自适应PID控制4.1.4仿真程序及分析4.1.5基于二次型性能指标学习算法的单神经元自适应PID控制4.1.6仿真程序及分析4.2基于BP神经网络整定的PID控制4.2.1基于BP神经网络的PID整定原理4.2.2仿真程序及分析4.3基于RBF神经网络整定的PID控制4.3.1RBF神经网络模型4.3.2RBF网络PID整定原理4.3.3仿真程序及分析4.4基于RBF神经网络辨识的单神经元PID模型参考自适应控制4.4.1神经网络模型参考自适应控制原理4.4.2仿真程序及分析4.5基于CMAC(神经网络)与PID的并行控制4.5.1CMAC概述4.5.2CMAC与PID复合控制算法4.5.3仿真程序及分析4.6CMAC与PID并行控制的Simulink仿真4.6.1Simulink仿真方法4.6.2仿真程序及分析第5章基于遗传算法整定的PID控制5.1遗传算法的基本原理5.2遗传算法的优化设计5.2.1遗传算法的构成要素5.2.2遗传算法的应用步骤5.3遗传算法求函数极大值5.3.1遗传算法求函数极大值实例5.3.2仿真程序5.4基于遗传算法的PID整定5.4.1基于遗传算法的PID整定原理5.4.2基于实数编码遗传算法的PID整定5.4.3仿真程序5.4.4基于二进制编码遗传算法的PID整定5.4.5仿真程序5.5基于遗传算法摩擦模型参数辨识的PID控制5.5.1仿真实例5.5.2仿真程序第6章先进PID多变量解耦控制6.1PID多变量解耦控制6.1.1PID解耦控制原理6.1.2仿真程序及分析6.2单神经元PID解耦控制6.2.1单神经元PID解耦控制原理6.2.2仿真程序及分析6.3基于DRNN神经网络整定的PID解耦控制6.3.1基于DRNN神经网络参数自学习PID解耦控制原理6.3.2DRNN神经网络的Jacobian信息辨识6.3.3仿真程序及分析第7章几种先进PID控制方法7.1基于干扰观测器的PID控制7.1.1干扰观测器设计原理7.1.2连续系统的控制仿真7.1.3离散系统的控制仿真7.2非线性系统的PID鲁棒控制7.2.1基于NCD优化的非线性优化PID控制7.2.2基于NCD与优化函数结合的非线性优化PID控制7.3一类非线性PID控制器设计7.3.1非线性控制器设计原理7.3.2仿真程序及分析7.4基于重复控制补偿的高精
2024/7/16 13:07:56 5.56MB PID
1
包含完整的课程设计/大作业文档一份+C语言实现的源码+存储数据文件分别使用了普里姆算法与克鲁斯卡尔算法进行最短路径求解。
内容:求城市之间的光纤网连接的最短电缆长度。
课程设计要求:(1)从文件city.txt中读入一个图,文件city.txt结构如下:第一行为整数m,n,其中m表示城市个数(顶点数),n表示边数;
接着的m行每行都是一个字符串,表示城市名;
接下来的n行每行代表一条边,其格式为“城市名城市名距离”。
(2)要求在所有城市之间建立光纤网,使所用光纤总长度最短。
(3)输出城市建成的光纤网所用光缆的总长及每个连接的长度。
1
牛顿迭代法,解非线性方程组求最优解。
2024/7/15 13:10:04 7.85MB 牛顿迭代法 解非线性方程组
1
信号处理小波分析1)计算信号的小波变换。
2)求出模极大曲线。
3)计算其中两个奇异点的Lipschitz指数。
-Signalprocessingwaveletanalysis1)thecalculationofwavelettransformsignals.2)calculatedcurveofmodulusmaxima.3)thecalculationofwhichtwosingularpointsofLipschitzindex.
2024/7/14 16:55:57 4KB 小波 奇异性 Lipschitz指数
1
radon变换检测图像中的直线能够通过扫描测量的平均值求整个衰减系数的分布
2024/7/13 13:38:11 882B 检测直线
1
牛顿迭代法(Newton'smethod)又称为牛顿-拉夫逊方法(Newton-Raphsonmethod),它是牛顿在17世纪提出的一种在实数域和复数域上近似求解方程的方法。
多数方程不存在求根公式,因此求精确根非常困难,甚至不可能,从而寻找方程的近似根就显得特别重要。
方法使用函数f(x)的泰勒级数的前面几项来寻找方程f(x)=0的根。
牛顿迭代法是求方程根的重要方法之一,其最大优点是在方程f(x)=0的单根附近具有平方收敛,而且该法还可以用来求方程的重根、复根。
设r是f(x)=0的根,选取x0作为r初始近似值,过点(x0,f(x0))做曲线y=f(x)的切线L,L的方程为y=f(x0)+f'(x0)(x-x0),求出L与x轴交点的横坐标x1=x0-f(x0)/f'(x0),称x1为r的一次近似值。
过点(x1,f(x1))做曲线y=f(x)的切线,并求该切线与x轴的横坐标x2=x1-f(x1)/f'(x1),称x2为r的二次近似值。
重复以上过程,得r的近似值序列,其中x(n+1)=x(n)-f(x(n))/f'(x(n)),称为r的n+1次近似值,上式称为牛顿迭代公式。
解非线性方程f(x)=0的牛顿法是把非线性方程线性化的一种近似方法。
把f(x)在x0点附近展开成泰勒级数f(x)=f(x0)+(x-x0)f'(x0)+(x-x0)^2*f''(x0)/2!+…取其线性部分,作为非线性方程f(x)=0的近似方程,即泰勒展开的前两项,则有f(x0)+f'(x0)(x-x0)=f(x)=0设f'(x0)≠0则其解为x1=x0-f(x0)/f'(x0)这样,得到牛顿法的一个迭代序列:x(n+1)=x(n)-f(x(n))/f'(x(n))。
2024/7/8 5:37:40 1.13MB 算法
1
超适合新手,下载后只需改一下读取图像名称即可运行,不管是普通图像或是遥感影像(注:多光谱影像请将各波段分别导出单独读取),都能无压力运行,省时省心。
2024/7/6 13:54:18 811B matlab
1
绘制庞加莱截面图的程序。
先通过solveLor.m来求出一系列点,然后代入Poincare_section程序绘制庞加莱截面。
通过观察Poincare截面上截点的情况可以判断是否发生混沌:当Poincare截面上有且只有一个不动点或少数离散点时,运动是周期的;
当Poincare截面上是一封闭曲线时,运动是准周期的当Poincare截面上是一些成片的具有分形结构的密集点时,运动便是混沌。
2024/7/6 0:26:01 2KB matlab Poincare
1
一般贷款计算器只能在已知贷款总额、贷款期数、贷款利率的情况求出每期还款金额。
本贷款计算器只需要已知以上4个参数中的任意3个即可求出最后1个。
例如,在LPR背景下,可以轻松求知当前执行的利率是多少,辅助贷款决策。
本计算器源代码提供activity_main.xml、AndroidManifest.xml、MainActivity.java完整代码,供学习使用,不可用于商业用途。
2024/7/5 19:23:27 3KB app java 贷款计算器 反查利率
1
共 920 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡