Singly Linked List এ ইনপুটের ক্ষেত্রে আমরা ভেক্টর এর Insertion এর মতো করে চিন্তা করতে পারি। আমরা একটি ভ্যালু নিতাম সেটি ভেক্টরের শেষে পুশ ব্যাক করে দিতাম।
ঠিক তেমন ই এখানে আমরা আমাদের আগে বানানো একটি ফানশন Insert at tail ব্যবহার করতে পারি , যেটি একটি লিঙ্কড লিস্টের শেষে ভ্যালু নিয়ে একটি Node Insert করে দেয়। আমরা প্রতিটি ইনপুট নিয়ে এই ফানশনে pass করে দিলেই লিঙ্কড লিস্টের শেষের দিকে Node insert হতে থাকবে।
আসেন নিচের চিত্র দেখে এই অপারেশন টি আরেকটু ভালো বুঝার চেষ্টা করি।
#include <bits/stdc++.h>
using namespace std;
class Node
{
public:
int val;
Node *next;
Node(int val)
{
this->val = val;
this->next = NULL;
}
};
void insert_at_tail(Node *&head, int val)
Node *newNode = new Node(val);
\
if (head == NULL) \
{
head = newNode;
return;
}
Node *temp = head;/
while (temp->next != NULL)
{
temp = temp->next;
}
temp->next = newNode;
}
void print(Node *head)
{
Node *temp = head;
while (temp != NULL)
{
cout << temp->val << " ";
temp = temp->next;
}
cout << endl;
}
int main()
{
Node *head = NULL ;
int x ;
while(1){ // একটি infinity loop চালাচ্ছি
cin >> x ; // x ভ্যালু ইনপুট নিচ্ছি
if(x!=-1){ // যদি x, -1 না হয় তবে
insert_at_tail(head,x) ; // লিঙ্কড লিস্ট এর শেষে insert করে দিচ্ছি
}
else{
break ; // -1 হলে loop break করে দিচ্ছি
}
print(head) ;
}
input : 1 2 3 -1
Output : 1 2 3