একটি লিঙ্কযুক্ত তালিকা দেওয়া হলে, আমাদের এটির প্রথম উপাদানটি সরাতে হবে এবং পয়েন্টারটিকে নতুন তালিকার মাথায় ফিরিয়ে দিতে হবে৷
Input : 1 -> 2 -> 3 -> 4 -> 5 -> NULL Output : 2 -> 3 -> 4 -> 5 -> NULL Input : 2 -> 4 -> 6 -> 8 -> 33 -> 67 -> NULL Output : 4 -> 6 -> 8 -> 33 -> 67 -> NULL
প্রদত্ত সমস্যায়, আমাদের তালিকার প্রথম নোডটি সরাতে হবে এবং আমাদের মাথাটি দ্বিতীয় উপাদানে নিয়ে যেতে হবে এবং মাথাটি ফিরিয়ে দিতে হবে।
সমাধান খোঁজার পদ্ধতি
এই সমস্যায়, আমরা মাথাটিকে পরবর্তী অবস্থানে নিয়ে যেতে পারি এবং তারপরে পূর্ববর্তী নোডটি মুক্ত করতে পারি।
উদাহরণ
#include <iostream>
using namespace std;
/* Link list node */
struct Node {
int data;
struct Node* next;
};
void push(struct Node** head_ref, int new_data) { // pushing the data into the list
struct Node* new_node = new Node;
new_node->data = new_data;
new_node->next = (*head_ref);
(*head_ref) = new_node;
}
int main() {
Node* head = NULL;
push(&head, 12);
push(&head, 29);
push(&head, 11);
push(&head, 23);
push(&head, 8);
auto temp = head; // temp becomes head
head = head -> next; // our head becomes the next element
delete temp; // we delete temp i.e. the first element
for (temp = head; temp != NULL; temp = temp->next) // printing the list
cout << temp->data << " ";
return 0;
} আউটপুট
23 11 29 12
উপরের কোডের ব্যাখ্যা
আমাদের শুধু এই প্রোগ্রামে মাথাটি তার পরবর্তী উপাদানে স্থানান্তর করতে হবে এবং তারপরে পূর্ববর্তী উপাদানটি মুছে ফেলতে হবে এবং তারপরে নতুন তালিকা প্রিন্ট করতে হবে। প্রদত্ত প্রোগ্রামের সামগ্রিক সময়ের জটিলতা হল O(1) যার অর্থ হল আমাদের প্রোগ্রাম প্রদত্ত ইনপুটের উপর নির্ভর করে না এবং এটি আমরা অর্জন করতে পারি এমন সেরা জটিলতা৷
উপসংহার
এই নিবন্ধে, আমরা লিঙ্ক করা তালিকার প্রথম নোডটি সরানোর জন্য একটি সমস্যার সমাধান করি। আমরা এই সমস্যার জন্য C++ প্রোগ্রাম এবং আমরা যে সম্পূর্ণ পদ্ধতির সমাধান করেছি তাও শিখেছি। আমরা অন্যান্য ভাষা যেমন সি, জাভা, পাইথন এবং অন্যান্য ভাষায় একই প্রোগ্রাম লিখতে পারি। আমরা আশা করি আপনার এই নিবন্ধটি সহায়ক হবে৷