কম্পিউটার

C++ এ লিঙ্ক করা তালিকায় একটি শীর্ষ উপাদান খুঁজুন


এই টিউটোরিয়ালে, আমরা একটি প্রোগ্রাম লিখতে যাচ্ছি যেটি প্রদত্ত লিঙ্কযুক্ত তালিকায় শীর্ষ উপাদান খুঁজে পায়।

পিক এলিমেন্ট হল এমন একটি উপাদান যা আশেপাশের উপাদানের চেয়ে বড়। আসুন সমস্যা সমাধানের পদক্ষেপগুলি দেখি৷

  • লিঙ্ক করা তালিকার জন্য একটি স্ট্রাকট নোড তৈরি করুন।

  • ডামি ডেটা দিয়ে লিঙ্ক করা তালিকা তৈরি করুন।

  • বেস কেস পরীক্ষা করুন যেমন লিঙ্ক করা তালিকা খালি নাকি দৈর্ঘ্য 1।

  • পূর্ববর্তী নামক একটি ভেরিয়েবলে প্রথম উপাদান সংরক্ষণ করুন।

  • লিঙ্ক করা তালিকার উপর পুনরাবৃত্তি করুন।

    • বর্তমান উপাদানটি পূর্ববর্তী উপাদান এবং পরবর্তী উপাদানের চেয়ে বড় কিনা তা পরীক্ষা করুন৷

    • উপরের শর্ত পূরণ হলে ফিরে যান।

    • পূর্ববর্তী উপাদান আপডেট করুন।

  • ফলাফল প্রিন্ট করুন

উদাহরণ

আসুন কোডটি দেখি।

#include <bits/stdc++.h>
using namespace std;
struct Node {
   int data;
   struct Node* next;
};
void insertNewNode(struct Node** head_ref, int new_data) {
   struct Node* new_node = new Node;
   new_node->data = new_data;
   new_node->next = (*head_ref);
   *head_ref = new_node;
}
int findPeakElement(struct Node* head) {
   if (head == NULL) {
      return -1;
   }
   if (head->next == NULL) {
      return head->data;
   }
   int prev = head->data;
   Node *current_node;
   for (current_node = head->next; current_node->next != NULL; current_node = current_node->next) {
      if (current_node->data > current_node->next->data && current_node->data > prev) {
         return current_node->data;
      }
      prev = current_node->data;
   }
   if (current_node->data > prev) {
      return current_node->data;
   }
   return -1;
}
int main() {
   struct Node* head = NULL;
   insertNewNode(&head, 7);
   insertNewNode(&head, 4);
   insertNewNode(&head, 5);
   insertNewNode(&head, 2);
   insertNewNode(&head, 3);
   cout << findPeakElement(head) << endl;
   return 0;
}

আউটপুট

আপনি যদি উপরের কোডটি কার্যকর করেন, তাহলে আপনি নিম্নলিখিত ফলাফল পাবেন।

5

উপসংহার

টিউটোরিয়ালে আপনার কোন প্রশ্ন থাকলে মন্তব্য বিভাগে উল্লেখ করুন।


  1. C++ এ একটি লিঙ্কযুক্ত তালিকা সমতল করা

  2. C++ এ লিঙ্ক করা তালিকায় লুপের দৈর্ঘ্য খুঁজুন

  3. C++ এ এককভাবে লিঙ্কযুক্ত তালিকায় সমস্ত প্রধান নোডের পণ্য

  4. C++ এ দ্বিগুণ লিঙ্কযুক্ত তালিকার আকার খোঁজার প্রোগ্রাম