标签:print 没有 顺序 repr 解决办法 父节点 strcpy parent 计算表达
难,不是我等凡夫俗子可以学会的。
困难点:对递归的理解不够透彻,一直转不过来。
解决办法:多看点代码。
题目一:6-4 jmu-ds-表达式树(25 分)
题目:
+
,-
,*
,/
,(
,)
运算符,操作数只有一位,且为整数(有兴趣同学可以考虑负数小数,两位数做法)。按照先括号,再乘除,后加减的规则构造二叉树。思路:
建立表达式二叉树
定义栈 s 用来存储用运算的数字
定义字符栈 o p 用来存储数字运算符号
首先 将’#‘ 如栈op
当str不为空的时候 进行while
if 是数字
就建立一个树节点,将它赋值为str{i}的值,还要就左右孩子弄成NULL, 还要入栈
else 调动Precede
对它出现的运算符一一进行运作,
用swich
while op的top不是#
创建新的树节点
赋予为op.top的值
在将栈里的后面两个值分别给左右孩子
/*计算表达式树*/
利用递归把所有字符转换成数字
while 若有树节点
就计算
4.PTA提交列表说明
题目二:6-1 jmu-ds-二叉树操作集(20 分)
本题要求用层次法创建二叉树,层次法输入序列是按树的从上到下从左到右的顺序形成,各层的空节点用字符 #表示
2.设计思路:
根据层次字符序列创建二叉树
定义一个队列q;
一个树 temp
if str是#
就直接ruturn
else 建立一个树节点
左右孩子为NULL;
将str【i】赋值给它
就节点入队列
while !队列
出队列
分别判断字符串后两个是否为空
不是空:建立新节点,赋值
本题要求按照先序遍历的顺序输出给定二叉树的叶结点。
2.设计思路:
if !BT 结束
当左右孩子多NULL时
就输出节点
总分
185
也就是2分
标签:print 没有 顺序 repr 解决办法 父节点 strcpy parent 计算表达
原文地址:https://www.cnblogs.com/88888a/p/8995558.html