এই টিউটোরিয়ালে, আমরা একটি অ্যারেকে সার্কুলার ডাবলি লিংকড লিস্টে কনভার্ট করার প্রোগ্রাম নিয়ে আলোচনা করব।
এই জন্য আমাদের একটি অ্যারে দেওয়া থাকবে। আমাদের কাজ হলো অ্যারের এলিমেন্টগুলো নেওয়া এবং সেগুলোকে একটি সার্কুলার ডাবলি লিংকড লিস্টে কনভার্ট করা।
C++ উদাহরণ
#include<iostream> using namespace std; // ডাবলি লিংকড লিস্ট নোড স্ট্রাকচার struct node{ int data; struct node *next; struct node *prev; }; // নোড তৈরি করা struct node* getNode(){ return ((struct node *)malloc(sizeof(struct node))); } // লিস্ট প্রিন্ট করা int print_list(struct node *temp){ struct node *t = temp; if(temp == NULL) return 0; else { cout<<"List: "; while(temp->next != t) { cout<<temp->data<<" "; temp = temp->next; } cout<<temp->data; return 1; } } // অ্যারেকে লিংকড লিস্টে কনভার্ট করা void convert_array(int arr[], int n, struct node **start) { // নতুন পয়েন্টার ডিক্লেয়ার করা struct node *newNode,*temp; int i; // সব এলিমেন্টের মধ্য দিয়ে যাওয়া for(i=0;i<n;i++){ newNode = getNode(); newNode->data = arr[i]; if(i==0) { *start = newNode; newNode->prev = *start; newNode->next = *start; } else { // লাস্ট নোড ক্যালকুলেট করা temp = (*start)->prev; temp->next = newNode; newNode->next = *start; newNode->prev = temp; temp = *start; temp->prev = newNode; } } } int main(){ int arr[] = {1,2,3,4,5}; int n = sizeof(arr) / sizeof(arr[0]); struct node *start = NULL; convert_array(arr, n, &start); print_list(start); return 0; }আউটপুট
List: 1 2 3 4 5