簡體   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