在C ++中的单链列表中查找最小和最大元素
在这个问题上,我们得到一个单链表。我们的任务是在单个链表中找到最小和最大的元素。
让我们举个例子来了解这个问题,
输入
linked List : 5 -> 2 -> 7 -> 3 ->9 -> 1 -> 4输出结果
Smallest element = 1 Largest element = 9
解决方法
一个简单的解决方案是通过逐个节点遍历链接列表来使用。在此之前,我们将maxElement和minElement初始化为第一个元素的值,即head->data。然后,我们将逐元素遍历链接列表。然后将当前节点的值与maxElement进行比较,并将较大的值存储在maxElement变量中。执行相同操作以将较小的值存储在minElement中。遍历完成后,将同时打印两个值。
该程序说明了我们解决方案的工作原理,
示例
#include输出结果using namespace std; struct Node { int data; struct Node* next; }; void printLargestSmallestLinkedList(struct Node* head) { int maxElement = INT_MIN; int minElement = INT_MAX; while (head != NULL) { if (minElement > head->data) minElement = head->data; if (maxElement < head->data) maxElement = head->data; head = head->next; } cout<<"链表中最小的元素是: "< data = data; newNode->next = (*head); (*head) = newNode; } int main() { struct Node* head = NULL; push(&head, 5); push(&head, 2); push(&head, 7); push(&head, 3); push(&head, 9); push(&head, 1); push(&head, 4); printLargestSmallestLinkedList(head); return 0; }
链表中最小的元素是: 1 链表中最大的元素是: 9