标签:做事 strong 编程风格 mic 内核 二叉树 结果 结对编程 中间
我们是Core第四组,上学期在数据结构课程中我们曾经有过编写计算算数表达式的经历,所以知道自己要写内核后,感觉感觉在思路上不会有很苦难的地方,但是在随机生成表达式的编写时还是遇到了一些困难。这次的作业是结对编程和个人独立作业也有很大不同,需要两个人之间合作,最后生成API接口和UI组对接也是之前没有接触过的,两周左右的时间写完了core的确也有很多感悟。
结对与独立作业
刚看到题目时被那些琐碎,冗杂的分支条件所震撼,真是一脸懵逼,看到API和接口更是不知所云。在随后的几天中,随着讨论的深入,思路也逐渐清晰。我们开始时是一起编写,一位领航员,一位驾驶员,但之后感觉这样的编程方式效率并不高,然后采取分工编写不同的子函数,有问题时再一起讨论的方式,后期主要是一起做一些细节的处理,如乘方和整数模式下如何生成表达式,总的来说是一次非常愉快的合作。
结对作业的效率明显高于独立作业,当一个人的脑子不转了的时候,另一人人还可以继续做事,出现了Bug时通过讨论可以更快的解决问题,但是每个人都有自己的编程风格,遇到具体的问题也会有不同的想法,这就更需要沟通和磨合。
选择合适的数据结构
在这次Core的编写中,我更加体会到选择一个良好的数据结构的重要性。
在随机生成算数表达式时,我们想先生成后缀或者中缀表达式,但是实际编写中发现,直接生成算数表达式十分困难,表达式极有可能不合法,中间计算过程出现负数,计算困难等等问题。在后来的讨论中我们重新选择了数据结构,采用二叉树的形式,良好的数据结构也大大减少了我们的工作量,二叉树的树枝天然的时运算符,树叶时运算数,生成的时候非常方便。中间解结果只有可能在减号的时候出现负数,这时候左子树的数值大于右子树,只要交换左右子树就可以使这个表达式重新合法。在乘方模式下时,由于括号的堆叠很可能使计算结果很长,这是我们选择将乘方沉到树底,使他的左右不可能耦合括号,使得表达式和运算结果十分简介。在整数和除法模式时需要整除使结果为整数,表达式中只有可能在除法时出现分数,我们同样选择将除号沉到树底,使分子为分母的倍数,这样任何中间过程都是整数,满足要求。想清楚这些后我们编程也更有信心了,良好的数据结构为我们节省了很多的时间和精力。
标签:做事 strong 编程风格 mic 内核 二叉树 结果 结对编程 中间
原文地址:https://www.cnblogs.com/ustcfanli/p/8894233.html