Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

सी++ में एक ऐरे को एक सर्कुलर डबल लिंक्ड लिस्ट में कनवर्ट करें

इस ट्यूटोरियल में, हम एक ऐरे को एक सर्कुलर डबल लिंक्ड लिस्ट में बदलने के लिए एक प्रोग्राम पर चर्चा करेंगे।

इसके लिए हमें एक सरणी प्रदान की जाएगी। हमारा काम सरणी के तत्वों को लेना और इसे एक गोलाकार डबल लिंक्ड सूची में परिवर्तित करना है।

उदाहरण

#include<iostream>
using namespace std;
//node structure for doubly linked list
struct node{
   int data;
   struct node *next;
   struct node *prev;
};
//node creation
struct node* getNode(){
   return ((struct node *)malloc(sizeof(struct node)));
}
//printing the list
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;
   }
}
//converting array to linked list
void convert_array(int arr[], int n, struct node **start) {
   //declaring new pointer
   struct node *newNode,*temp;
   int i;
   //moving through all the elements
   for(i=0;i<n;i++){
      newNode = getNode();
      newNode->data = arr[i];
      if(i==0) {
         *start = newNode;
         newNode->prev = *start;
         newNode->next = *start;
      } else  {
         //calculating the last node
         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

  1. सी++ में डबल लिंक्ड लिस्ट का आकार खोजने का कार्यक्रम

    इस समस्या में हमें एक डबल लिंक्ड लिस्ट दी जाती है। हमारा काम C++ में डबली लिंक्ड लिस्ट का आकार खोजने के लिए एक प्रोग्राम बनाना है। डबल लिंक्ड लिस्ट एक विशेष प्रकार की लिंक्ड लिस्ट है जिसमें सिंगल लिंक्ड लिस्ट की तुलना में आगे और पीछे दोनों तरह से नेविगेशन संभव है। डबल लिंक्ड सूचियों की अवधारणा को

  1. C++ में सर्कुलर लिंक्ड लिस्ट में नोड्स गिनें

    हमें नोड्स के साथ एक सर्कुलर लिंक्ड लिस्ट दी गई है और कार्य एक सर्कुलर लिंक्ड लिस्ट में मौजूद नोड्स की गिनती की गणना करना है। सर्कुलर लिंक्ड लिस्ट लिंक्ड लिस्ट का एक रूपांतर है जिसमें पहला तत्व अंतिम तत्व को इंगित करता है और अंतिम तत्व पहले तत्व को इंगित करता है। सिंगल लिंक्ड लिस्ट और डबल लिंक्ड लि

  1. सी ++ में डबल लिंक्ड सूची का उपयोग कर प्राथमिकता कतार

    हमें डेटा और प्राथमिकता एक पूर्णांक मान के रूप में दी जाती है और कार्य दी गई प्राथमिकता के अनुसार एक डबल लिंक्ड सूची बनाना और परिणाम प्रदर्शित करना है। Queue एक FIFO डेटा संरचना है जिसमें जो तत्व पहले डाला जाता है वह सबसे पहले निकाला जाता है। प्राथमिकता कतार एक प्रकार की कतार है जिसमें प्राथमिकता क