কম্পিউটার

এককভাবে লিঙ্কযুক্ত তালিকা বাস্তবায়নের জন্য সি++ প্রোগ্রাম


সিঙ্গলি লিঙ্কড লিস্ট হল এক ধরনের ডাটা স্ট্রাকচার যা নোড দিয়ে তৈরি যেগুলো সেলফ রেফারেন্সিয়াল স্ট্রাকচার ব্যবহার করে তৈরি করা হয়। এই নোডগুলির প্রতিটিতে দুটি অংশ রয়েছে, যথা ডেটা এবং পরবর্তী তালিকা নোডের রেফারেন্স। সম্পূর্ণ লিঙ্ক করা তালিকা অ্যাক্সেস করার জন্য শুধুমাত্র প্রথম তালিকা নোডের রেফারেন্স প্রয়োজন। এটি মাথা হিসাবে পরিচিত। তালিকার শেষ নোডটি কিছুই নির্দেশ করে না তাই এটি সেই অংশে NULL সঞ্চয় করে।

এককভাবে সংযুক্ত তালিকা বাস্তবায়নের জন্য একটি প্রোগ্রাম নিম্নরূপ দেওয়া হয়েছে।

উদাহরণ

#include <iostream>
using namespace std;
struct Node {
   int data;
   struct Node *next;
};
struct Node* head = NULL;
void insert(int new_data) {
   struct Node* new_node = (struct Node*) malloc(sizeof(struct Node));
   new_node->data = new_data;
   new_node->next = head;
   head = new_node;
}
void display() {
   struct Node* ptr;
   ptr = head;
   while (ptr != NULL) {
      cout<< ptr->data <<" ";
      ptr = ptr->next;
   }
}
int main() {
   insert(3);
   insert(1);
   insert(7);
   insert(2);
   insert(9);
   cout<<"The linked list is: ";
   display();
   return 0;
}

আউটপুট

The linked list is: 9 2 7 1 3

উপরের প্রোগ্রামে, স্ট্রাকচার নোড লিঙ্কড লিস্ট নোড গঠন করে। এতে ডেটা এবং পরবর্তী লিঙ্কযুক্ত তালিকা নোডের একটি পয়েন্টার রয়েছে। এটি নিম্নরূপ দেওয়া হল।

struct Node {
   int data;
   struct Node *next;
};

ফাংশন insert() লিঙ্ক করা তালিকার শুরুতে ডেটা সন্নিবেশ করায়। এটি একটি নতুন_নোড তৈরি করে এবং নতুন_নোডের ডেটা ক্ষেত্রে নম্বরটি সন্নিবেশ করায়। তারপর নতুন_নোড মাথার দিকে নির্দেশ করে। অবশেষে প্রধান হল new_node অর্থাৎ লিঙ্ক করা তালিকা সেখান থেকে শুরু হয়। এটি নীচে দেওয়া হল৷

void insert(int new_data) {
   struct Node* new_node = (struct Node*) malloc(sizeof(struct Node));
   new_node->data = new_data;
   new_node->next = head;
   head = new_node;
}

ফাংশন প্রদর্শন() পুরো লিঙ্কযুক্ত তালিকা প্রদর্শন করে। প্রথম ptr পয়েন্ট হেড. তারপর নোডের সমস্ত ডেটা মান প্রিন্ট না হওয়া পর্যন্ত এটি ক্রমাগত পরবর্তী নোডে ফরোয়ার্ড করা হয়। এটি নীচে দেওয়া হল৷

void display() {
   struct Node* ptr;
   ptr = head;
   while (ptr != NULL) {
      cout<< ptr->data <<" ";
      ptr = ptr->next;
   }
}

ফাংশনে main(), প্রথমে বিভিন্ন মান যুক্ত তালিকায় সন্নিবেশ করা হয় insert() কল করে। তারপর লিঙ্ক করা তালিকা প্রদর্শিত হয়. এটি নীচে দেওয়া হল৷

int main() {
   insert(3);
   insert(1);
   insert(7);
   insert(2);
   insert(9);
   cout<<"The linked list is: ";
   display();
   return 0;
}

  1. বাইনারি সার্চ ট্রিকে সি++ এ এককভাবে লিঙ্ক করা তালিকায় রূপান্তর করার প্রোগ্রাম?

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

  3. সংলগ্নতা তালিকা বাস্তবায়নের জন্য C++ প্রোগ্রাম

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