繁体   English   中英

如何在队列的链表实现中找到最小元素的前任?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM