在C ++中的单链列表中查找最小和最大元素

在这个问题上,我们得到一个单链表。我们的任务是在单个链表中找到最小和最大的元素。

让我们举个例子来了解这个问题,

输入

linked List : 5 -> 2 -> 7 -> 3 ->9 -> 1 -> 4
输出结果
Smallest element = 1

Largest element = 9

解决方法

一个简单的解决方案是通过逐个节点遍历链接列表来使用。在此之前,我们将maxElement和minElement初始化为第一个元素的值,即head-> data。然后,我们将逐元素遍历链接列表。然后将当前节点的值与maxElement进行比较,并将较大的值存储在maxElement变量中。执行相同操作以将较小的值存储在minElement中。遍历完成后,将同时打印两个值。

该程序说明了我们解决方案的工作原理,

示例

#include <bits/stdc++.h>

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<<"链表中最小的元素是: "<<minElement<<endl;

   cout<<"链表中最大的元素是: "<<maxElement<<endl;

}

void push(struct Node** head, int data) {

   struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));

   newNode->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

以上是 在C ++中的单链列表中查找最小和最大元素 的全部内容, 来源链接: utcz.com/z/331870.html

回到顶部