এই টিউটোরিয়ালে, আমরা একটি প্রোগ্রাম লিখতে যাচ্ছি যেটি প্রদত্ত লিঙ্কযুক্ত তালিকায় শীর্ষ উপাদান খুঁজে পায়।
পিক এলিমেন্ট হল এমন একটি উপাদান যা আশেপাশের উপাদানের চেয়ে বড়। আসুন সমস্যা সমাধানের পদক্ষেপগুলি দেখি৷
৷-
লিঙ্ক করা তালিকার জন্য একটি স্ট্রাকট নোড তৈরি করুন।
-
ডামি ডেটা দিয়ে লিঙ্ক করা তালিকা তৈরি করুন।
-
বেস কেস পরীক্ষা করুন যেমন লিঙ্ক করা তালিকা খালি নাকি দৈর্ঘ্য 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
উপসংহার
টিউটোরিয়ালে আপনার কোন প্রশ্ন থাকলে মন্তব্য বিভাগে উল্লেখ করুন।