我需要计算peek mid元素,实现此方法的问题语句如下: -
*returns object which has the middle value among the all objects without removing it from the stack.
*returns the object which has the value of following order (size()/2)+1
*e.g. *When the stack has the following values (1, 2, 5, 4, 2, 6) *this method returns 4 and doesn't remove the object.
所以我的查询是: -
我应该考虑位置方面的中间元素,即在对堆栈元素进行排序后,中间元素获得为 mid = stack[size()/2+1]
或者我应该在价值方面考虑它,即 mid= max+min/2
如上所述,两种情况都是正确的(在我看来),即
stack[size()/2+1]=stack[6/2+1]=4
和max+min/2=6+1/2=3.5
以及四舍五入将等于4
请帮助我理解问题陈述
答案 0 :(得分:1)
堆栈是一种数据结构,因此在最通用的情况下应该能够存储任何数据类型。您处理整数的事实只是对您的任务的简化。数据结构方面,你考虑中间元素,而不是对元素值进行任何计算(这对于数据结构来说太具体了)是有道理的。
看起来你想要的是((n / 2)+ 1)元素,因此在这个例子中索引(n / 2)处的元素。