Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 理解堆栈实现问题语句_Java_Algorithm_Data Structures_Stack - Fatal编程技术网

Java 理解堆栈实现问题语句

Java 理解堆栈实现问题语句,java,algorithm,data-structures,stack,Java,Algorithm,Data Structures,Stack,我需要计算peek mid元素,实现此方法的问题陈述如下:- *返回在所有对象中具有中间值的对象,而不将其从堆栈中移除。 *返回值顺序为(size()/2)+1的对象 *e、 g.*当堆栈具有以下值(1、2、5、4、2、6)*时,此方法返回4,不删除对象。 所以我的问题是:- 我应该考虑中间元素的位置,即在对堆栈的元素进行排序之后,得到中间元素为中=堆栈[ siz()/ 2+1 ] < /代码> 或者我应该考虑它的价值,即 MID= Max + MIN/2 < /P> 在上述问题中,两种情况

我需要计算peek mid元素,实现此方法的问题陈述如下:-

*返回在所有对象中具有中间值的对象,而不将其从堆栈中移除。
*返回值顺序为(size()/2)+1的对象
*e、 g.*当堆栈具有以下值(1、2、5、4、2、6)*时,此方法返回4,不删除对象。

所以我的问题是:-

我应该考虑中间元素的位置,即在对堆栈的元素进行排序之后,得到中间元素为<代码>中=堆栈[ siz()/ 2+1 ] < /代码> 或者我应该考虑它的价值,即<代码> MID= Max + MIN/2 < /P> 在上述问题中,两种情况都是正确的(在我看来)

stack[size()/2+1]=stack[6/2+1]=4

max+min/2=6+1/2=3.5
,四舍五入等于4


请帮助我理解问题陈述

堆栈是一种数据结构,因此在最一般的情况下应该能够存储任何数据类型。事实上,您正在处理ints只是简化了您的作业。从数据结构上看,考虑中间元素并不对元素值执行任何计算(对于数据结构来说太具体)是有意义的。
看起来您想要的是第((n/2)+1)个元素,因此本例中索引(n/2)处的元素。

堆栈是一种数据结构,因此在最一般的情况下应该能够存储任何数据类型。事实上,您正在处理ints只是简化了您的作业。从数据结构上看,考虑中间元素并不对元素值执行任何计算(对于数据结构来说太具体)是有意义的。
看起来您想要的是第((n/2)+1)个元素,因此在本例中是索引(n/2)处的元素。

yes.“在大多数通用情况下”但给我的问题包含一个名为“SortableStack”的堆栈接口。所以所有的困惑都在这里,因为名称表明堆栈需要排序……我的答案仍然成立,您可能需要在执行操作之前对底层数组进行排序。不过,有一个可排序的堆栈似乎很奇怪,因为根据定义,堆栈是“先进先出”。但这取决于你的家庭作业规格:)哦……明白了……你能告诉我,如果有一种方法可以不进行排序就得到这个中间值……因为排序是一项资源密集型任务,在这个问题中,我只需要得到一个值(即中间值),你无法避免排序来找到中间元素。此外,如果它是已排序的堆栈,则应始终保持其排序。通过将每个元素插入到正确的排序位置,并确保始终具有排序数组,可以减少对性能的影响。这将导致每个项目的O(n)插入成本。一旦你对它进行了排序,就使用我的答案中的方法。是的…“在大多数通用情况下”,但给我的问题包含一个名为“SortableStack”的堆栈接口。所以所有的困惑都在这里,因为名称表明堆栈需要排序……我的答案仍然成立,您可能需要在执行操作之前对底层数组进行排序。不过,有一个可排序的堆栈似乎很奇怪,因为根据定义,堆栈是“先进先出”。但这取决于你的家庭作业规格:)哦……明白了……你能告诉我,如果有一种方法可以不进行排序就得到这个中间值……因为排序是一项资源密集型任务,在这个问题中,我只需要得到一个值(即中间值),你无法避免排序来找到中间元素。此外,如果它是已排序的堆栈,则应始终保持其排序。通过将每个元素插入到正确的排序位置,并确保始终具有排序数组,可以减少对性能的影响。这将导致每个项目的O(n)插入成本。一旦你把它分类了,就用我答案中的方法。。