Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Tìm phần tử nhỏ nhất và lớn nhất trong danh sách liên kết đơn trong C++

Trong bài toán này, cho một danh sách liên kết đơn. Nhiệm vụ là tìm phần tử nhỏ nhất và lớn nhất.

Ví dụ minh họa:

Đầu vào

Linked List: 5 -> 2 -> 7 -> 3 -> 9 -> 1 -> 4

Đầu ra

Smallest element = 1 Largest element = 9

Phương pháp giải

Duyệt danh sách liên kết nút bởi nút. Khởi tạo maxElement và minElement bằng giá trị head->data. Duyệt từng nút, so sánh với max/min và cập nhật. In kết quả khi duyệt xong.

Chương trình minh họa:

Ví dụ

#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<<"Smallest element in the linked list is : "<<minElement<<endl; 
    cout<<"Largest element in the linked list is : "<<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; 
}

Kết quả

Smallest element in the linked list is : 1 Largest element in the linked list is : 9