INSERTING New NODE at the End of the LINKED LIST

INSERTING New NODE at the End of the LINKED LIST – जब हम पहली बार कोई Linked List Create करते हैं तब वास्तव में हम START में एक नए Node का Address दे रहे होते हैं यानी यदि ये माना जाए कि START किसी पहले से बनी हुई Linked List को Point कर रहा है तो Create होने वाला नया Node इस Start के अन्त में जुडता है। इस स्थिति में हम CREATE() व INSERT_AT_END() दोनों Functions को निम्नानुसार एक ही Function के रूप में लिख सकते हैं-

[code]
void INSERT_AT_END(struct LIST **PTR, int ITEM)
{
      struct LIST *temp, *NEWNODE;
      if(*PTR == NULL)     //[IF START = NULL ] then Create new NODE
      {
            temp = (struct LIST *)malloc(sizeof(struct LIST));
            temp->INFO = ITEM;
            temp->LINK = NULL;
            *PTR = temp;
      }
      else
      {
            struct LIST *temp = *PTR;
            //Go to End of the Linked List
            while(temp->LINK != NULL)
                  temp = temp->LINK;
            //Create New Node
            NEWNODE = (struct LIST *)malloc(sizeof(struct LIST));
            NEWNODE->INFO = ITEM;
            NEWNODE->LINK = NULL;
            temp->LINK = NEWNODE;
      }
}
[/code]

इस Function का प्रयोग करते हुए हम निम्नानुसार एक Program बना सकते हैं-

[code]
#include <stdio.h>
#include <conio.h>
#include <alloc.h>

// Structure
struct LIST
{
      //Information Part
   int INFO;
   //Link Part
   struct LIST *LINK;
};
struct LIST *START = NULL;

// Function
void INSERT_AT_END(struct LIST **PTR, int ITEM)
{
      struct LIST *temp, *NEWNODE;
      if(*PTR == NULL)   //[IF START = NULL ] then Create new NODE
      {
            temp = (struct LIST *)malloc(sizeof(struct LIST));
            temp->INFO = ITEM;
            temp->LINK = NULL;
            *PTR = temp;
      }
      else
      {
            struct LIST *temp = *PTR;
            //Go to End of the Linked List
            while(temp->LINK != NULL)
                  temp = temp->LINK;
            //Create New Node
            NEWNODE = (struct LIST *)malloc(sizeof(struct LIST));
            NEWNODE->INFO = ITEM;
            NEWNODE->LINK = NULL;
            temp->LINK = NEWNODE;
      }
}

//main() Function
main()
{
      struct LIST *ptr;
      char choice= 'y';
      int ITEM;

      clrscr();

      while(choice=='y' || choice=='Y')
      {
         printf("\n Enter a NUMBER in Information Part : " );
         scanf("%d", &ITEM)
         INSERT_AT_END(&START, ITEM);
         printf("\n Do You wish to Continuous ? Y/N   ");
         fflush(stdin);
         choice = (char)getchar();
      }

      ptr = START;
      while(ptr)
      {
            printf("\n Inserted Number \t %d", ptr->INFO);
            ptr = ptr->LINK;
      }

   free(ptr);
   free(START);
   getch();
}

//Output
Enter a NUMBER in Information Part : 123123
 Do You wish to Continuous ? Y/N   y
 Enter a NUMBER in Information Part : 787878
 Do You wish to Continuous ? Y/N   y
 Enter a NUMBER in Information Part : 989898
 Do You wish to Continuous ? Y/N   y
 Enter a NUMBER in Information Part : 784112
 Do You wish to Continuous ? Y/N   n
 Inserted Number     123123
 Inserted Number     787878
 Inserted Number     989898
 Inserted Number     784112
[/code]

Data Structure and Algorithmes in Hindiये Article इस वेबसाईट पर Selling हेतु उपलब्‍ध EBook Data Structure and Algorithms in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी। 

Data Structure and Algorithms in Hindi | Page: 433 | Format: PDF

BUY NOW GET DEMO REVIEWS