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