恭喜,你发布的帖子
发布于 2023-03-31 14:49:13
2楼
老师,在第三阶段的第一章的第一小节中,要求出栈元素为当前栈内数值最小的元素。这一段代码的实现逻辑不是很懂,老师能够仔细的讲解一下吗。
这一段程序代码的功能是 查找最小值 所在 数组中的索引号位置,先假定第一个元素,也就是位置0的元素,为最小值,然后依次比较所有元素,如果有更小的,就把更小的所在位置 作为最小值所在位置,从而最终获得最小元素所在位置。
咱们以实例来说明,假设堆栈数组有3个元素,#stack[0]=21,#stack[1]=63,#stack[2]=15,
那么程序开始执行:
执行第一行时,结果#statMin := 0;
执行第二行时,因为if 的条件#statStackIndex>1 满足,所以接着执行for循环
for一共循环2次
第一次:#stack[1]不小于#stack[0],所以不执行#statMin := #tempCount
第二次:#stack[2]小于#stack[0],所以执行#statMin := #tempCount,此时#tempCount=2,所以#statMin:=2
这样就找到了最小值所在的堆栈数组索引号#statMin=2
这里最小值是15,最小值所在索引号位置为2,与查找的结果是相符的
请填写推广理由:
分享
只看
楼主