[此贴子已经被作者于2007-8-20 15:00:47编辑过]
那是,我是大二刚改行学计算机的,以前是学物理的
所以要努力了
大二下一边学数据结构,一边学c语言(自学),还有微机原理
[此贴子已经被作者于2007-8-20 15:01:01编辑过]
结果是对的,我试过了,输出的式子按顺序来算,不是按符号优先级来算的
如5+6+1*2为(5+6+1)*2.......;
我知道怎么把重复的去掉了.
比如两个重复的式子:10+3-9*6和3+10-9*6
我们只要把每个式子连同符号在内连成一个链表,结点中包括符号和数据
+,-,*,/分别对应数字为0,1,2,3
每个数据与前面的符号放在一结点里.如把9与"-"号放在一起,,故为数据为9与符号为1
第一个数的符号为:如果第二个数前的符号为+或-则第一个数符号可以看成是+,故为0
否则第一个数的符号可以看成是*,故为2....
如10,由于后面的符号为+,故10的符号也可看成是+,,,,,,
这样将成功输出的式子也转换成链表保存起来,再与将要输出的式子转换成链表与原先保存起来的链表比较,
如果两个链表中至少有3个结点完全相同时,我们就可以认为这两个式子是一样,,,,重量复的,,,
不知道这样是否可以将重复的式子去掉
结果是对的,我试过了,输出的式子按顺序来算,不是按符号优先级来算的
如5+6+1*2为(5+6+1)*2.......;
我知道怎么把重复的去掉了.
比如两个重复的式子:10+3-9*6和3+10-9*6
我们只要把每个式子连同符号在内连成一个链表,结点中包括符号和数据
+,-,*,/分别对应数字为0,1,2,3
每个数据与前面的符号放在一结点里.如把9与"-"号放在一起,,故为数据为9与符号为1
第一个数的符号为:如果第二个数前的符号为+或-则第一个数符号可以看成是+,故为0
否则第一个数的符号可以看成是*,故为2....
如10,由于后面的符号为+,故10的符号也可看成是+,,,,,,
这样将成功输出的式子也转换成链表保存起来,再与将要输出的式子转换成链表与原先保存起来的链表比较,
如果两个链表中至少有3个结点完全相同时,我们就可以认为这两个式子是一样,,,,重量复的,,,
不知道这样是否可以将重复的式子去掉
没这么简单,你试试看吧