[英]How to find a predecessor of a minimum element in a linked list implementation of a queue?
所以我想在队列中找到最小元素的前身。 我使用了队列的链表实现。 我已经能够在队列中找到最小元素,但我不知道如何找到最小元素的前身。 例如,假设一个队列由以下元素组成:[5 3 1 4]。 我需要找到元素 3,因为它是最小元素的前身,在这种情况下是 1。在此先感谢您的帮助。
这是我到目前为止所做的:
template <typename InfoType>
void LQueue <InfoType>::MinElementP() {
Node *min = head;
Node *h = head;
while (h != 0){
if (min->info > h->info){
min->info = h->info;
}
h = h->next;
}
cout << "Minimum element (the smallest element) in this queue is : " << min->info << "\n";
}
我现在开始工作了,我初始化了一个指向前任的新指针,就在h= h->next;
之前声明,例如predecessor = h;
您在node
中创建了什么类型的变量? 如果它有一个按升序排列的key
来跟踪您的节点,那么您可以通过从key of node with minimum value
的键中减去一个来获得前任的键。 或者,您可以通过在node
类型中创建一个名为previous
的指针来创建一个指向前一个元素的双链链接列表。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.