可以用2叉树写。
定义运算式结构体类型,比如:
typedef struct yunsuan根据优先级解析多运算符的式子,比如2^2+(√4-1)。
从运算顺序最低的运算符号开始先找到'+',创建树顶点结构体,fh='+';father=NULL;brother=NULL;left=(2^2)的结构体;right=(√4-1)的结构体;
(2^2)的结构体:fh='^';num1=2;num2=2;father=最顶端的结构体;brother=(√4-1)的结构体;left=新建节点fh置0;right=新建节点fh置0;
(√4-1)的结构体:fh='-';num2=1;father=最顶端的结构体;brother=(2^2)的结构体;left=√4的结构体;right=新建节点fh置0;
√4的结构体:fh='√';num1=4;father=(√4-1)的结构体;brother=NULL;left=新建节点fh置0;right=NULL;
依次类推,以上只是说明树形结构建立。
你解析字符串,从运算顺序最后的字符开始拆分并创建树的最顶层节点,然后依次往下建立树。
最后可以用递归函数或循环,遍历树各节点进行运算。