这是一道栈的题目,但由于信奥的输出方式最后还要将栈颠倒后输出。
我们先需要将第一颗星放入栈中。接下来开始循环读数据。
基本情况有四种:
栈顶负,数据负。
栈顶负,数据正。
栈顶正,数据正。
栈顶正,数据负。
前三种情况只需要压入数据进栈即可。
只有当第四种情况发生时,出现碰撞。
出现了碰撞,我们就要比较行星的质量。
若栈顶大,则无事发生;
若栈顶和数据相等,则需要弹出栈顶;
若栈顶小,则需要弹出栈顶,并进行小循环让数据和新的栈顶进行比较。
但每次进入小循环之前,需要确定栈内是否还有元素,没元素就不用比了,将数据压入。