Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

सी प्रोग्राम एकल लिंक्ड सूची का उपयोग करके संख्याओं को उल्टे क्रम में प्रदर्शित करने के लिए

लिंक्ड सूचियां गतिशील स्मृति आवंटन का उपयोग करती हैं और नोड्स का संग्रह हैं।

नोड्स के दो भाग होते हैं जो डेटा और लिंक होते हैं।

लिंक की गई सूचियों के प्रकार

C प्रोग्रामिंग लैंग्वेज में लिंक्ड लिस्ट के प्रकार इस प्रकार हैं -

  • एकल/एकल लिंक की गई सूचियां
  • डबल / डबल लिंक्ड सूचियां
  • सर्कुलर सिंगल लिंक्ड लिस्ट
  • सर्कुलर डबल लिंक्ड लिस्ट

एकल लिंक की गई सूची

नीचे दिया गया चित्र एकल लिंक्ड सूची का प्रतिनिधित्व दर्शाता है।

सी प्रोग्राम एकल लिंक्ड सूची का उपयोग करके संख्याओं को उल्टे क्रम में प्रदर्शित करने के लिए

उदाहरण

एकल लिंक की गई सूची का उपयोग करके संख्याओं को उल्टे क्रम में प्रदर्शित करने के लिए निम्नलिखित C प्रोग्राम है -

#include <stdio.h>
#include <stdlib.h>
struct node {
   int num;
   struct node *nextptr;
}*stnode;
void createNodeList(int n);
void reverseDispList();
void displayList();
int main(){
   int n;
   printf("\n\n single Linked List : print it in reverse order :\n");
   printf("------------------------------------------------------------------------------\n");
   printf(" Input the number of nodes : ");
   scanf("%d", &n);
   createNodeList(n);
   printf("\n Data entered in the list are : \n");
   displayList();
   reverseDispList();
   printf("\n The list in reverse are : \n");
   displayList();
   return 0;
}
void createNodeList(int n){
   struct node *fnNode, *tmp;
   int num, i;
   stnode = (struct node *)malloc(sizeof(struct node));
   if(stnode == NULL) {
      printf(" Memory can not be allocated.");
   }
   else{
      // reads data for the node through keyboard
      printf(" Input data for node 1 : ");
      scanf("%d", &num);
      stnode-> num = num;
      stnode-> nextptr = NULL;
      tmp = stnode;
      //Creates n nodes and adds to linked list
      for(i=2; i<=n; i++){
         fnNode = (struct node *)malloc(sizeof(struct node));
         if(fnNode == NULL) {
            printf(" Memory can not be allocated.");
            break;
         }
         else{
            printf(" Input data for node %d : ", i);
            scanf(" %d", &num);
            fnNode->num = num;
            fnNode->nextptr = NULL;
            tmp->nextptr = fnNode;
            tmp = tmp->nextptr;
         }
      }
   }
}
void reverseDispList(){
   struct node *prevNode, *curNode;
   if(stnode != NULL){
      prevNode = stnode;
      curNode = stnode->nextptr;
      stnode = stnode->nextptr;
      prevNode->nextptr = NULL; //convert the first node as last
      while(stnode != NULL){
         stnode = stnode->nextptr;
         curNode->nextptr = prevNode;
         prevNode = curNode;
         curNode = stnode;
      }
      stnode = prevNode; //convert the last node as head
   }
}
void displayList(){
   struct node *tmp;
   if(stnode == NULL){
      printf(" No data found in the list.");
   }
   else{
      tmp = stnode;
      while(tmp != NULL){
         printf(" Data = %d\n", tmp->num);
         tmp = tmp->nextptr;
      }
   }
}

आउटपुट

जब उपरोक्त प्रोग्राम को निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -

Single Linked List : print it in reverse order :
------------------------------------------------------------------------------
Input the number of nodes : 5
Input data for node 1 : 12
Input data for node 2 : 45
Input data for node 3 : 11
Input data for node 4 : 9
Input data for node 5 : 10

Data entered in the list are :
Data = 12
Data = 45
Data = 11
Data = 9
Data = 10

The list in reverse are :
Data = 10
Data = 9
Data = 11
Data = 45
Data = 12

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

    लिंक्ड सूचियां गतिशील स्मृति आवंटन का उपयोग करती हैं और नोड्स का संग्रह हैं। नोड्स के दो भाग होते हैं जो डेटा और लिंक होते हैं। लिंक की गई सूचियों के प्रकार C प्रोग्रामिंग लैंग्वेज में लिंक्ड लिस्ट के प्रकार इस प्रकार हैं - एकल/एकल लिंक की गई सूचियां। डबल / डबल लिंक्ड सूचियां। सर्कुलर सिंगल लिंक्

  1. लूप के लिए 1 से N के बीच सभी अभाज्य संख्याओं को प्रदर्शित करने के लिए C प्रोग्राम

    समस्या 1 और n के बीच सभी अभाज्य संख्याओं को प्रदर्शित करने के लिए एक C प्रोग्राम लिखें, जो रन टाइम पर उपयोगकर्ता द्वारा दिया गया मान है। समाधान 1 और n के बीच सभी अभाज्य संख्याओं को प्रदर्शित करने के लिए C प्रोग्राम, रन टाइम पर उपयोगकर्ता द्वारा दिया गया मान है जिसे नीचे समझाया गया है - एल्गोरिदम

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

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