如果优先队列里装的元素是结构体数组,优先级是a[].w越小优先级越高。那么假如队列里a[2]已经存在了,接着我在外面修改a[2].w又push(a[2])那么,原来在队列里的a[2]它的w会改变吗?
它在原来队列的位置会改变吗?
1.如果原来a[2].w位置不会变,但是原来的a[2].w值改变为新更新的值,那么假如新的a[2].w比这个队列队首的w更小的话,那么我push这个新的a[2]有可能到不了队首,因为有可能遇到原来的a[2],然后就无法再向上传了。
2.如果原来a[2].w位置不会变,而且也不更新,那么虽然新的a[2].w可以到队首,但是这a[2].w不就是有两个了吗,就很离谱。
3.如果原来的a[2].w又改变,位置也更新那当然最好。但是优先队列有这种自动更新的操作吗?
大佬来帮帮孩子啊!好苦恼!