কম্পিউটার টিউটোরিয়াল

C++-এ একটি লিংকড লিস্ট পেয়ারওয়াইজ সর্টেড কিনা চেক করা

আমাদের একটি লিস্ট L আছে, n উপাদানের সাথে। আমাদের চেক করতে হবে লিস্টটি পেয়ারওয়াইজ সর্টেড কিনা। ধরুন লিস্টটি {8, 10, 18, 20, 5, 15}। এটি পেয়ারওয়াইজ সর্টেড কারণ (8, 10), (18, 20), (5, 15) সর্টেড। যদি লিস্টে বিষম সংখ্যক উপাদান থাকে, তবে শেষটি উপেক্ষা করা হবে।

অ্যাপ্রোচটি খুব সহজ: লিস্টকে বাম থেকে ডানে ট্রাভার্স করুন। দুটি এক بعد একে উপাদান নিন এবং চেক করুন সেগুলো সর্টেড কিনা। যদি কোনো এক জোড়া অসর্টেড থাকে, false রিটার্ন করুন। যদি কোনো অসর্টেড জোড়া না পাওয়া যায়, true রিটার্ন করুন।

উদাহরণ কোড

#include <iostream>
#include <cmath>
using namespace std;

class Node {
public:
    int data;
    Node *next;
};

void append(struct Node** start, int key) {
    Node* new_node = new Node;
    new_node->data = key;
    new_node->next = (*start);
    (*start) = new_node;
}

bool isPairwiseSorted(Node *start) {
    bool flag = true;
    struct Node* temp = start;
    while (temp != NULL && temp->next != NULL) {
        if (temp->data < temp->next->data) {
            flag = false;
            break;
        }
        temp = temp->next->next;
    }
    return flag;
}

int main() {
    Node *start = NULL;
    int arr[] = {8, 10, 18, 20, 5, 15};
    int n = sizeof(arr)/sizeof(arr[0]);
    for (int i = 0; i < n; i++) {
        append(&start, arr[i]);
    }
    if (isPairwiseSorted(start)) {
        cout << "This is pairwise sorted";
    } else {
        cout << "This is not pairwise sorted";
    }
    return 0;
}

আউটপুট

This is pairwise sorted
  1. লিংকড লিস্ট ফ্ল্যাটেন করা (C++)

  2. মাল্টিলেভেল লিংকড লিস্ট ফ্ল্যাটেন করা (C++)

  3. C++-এ সর্টেড ও রোটেটেড লিংকড লিস্টে রোটেশনের সংখ্যা গণনা

  4. C++ প্রোগ্রাম: সোর্টেড সার্কুলারলি ডাবলি লিঙ্কড লিস্ট বাস্তবায়ন