Search

Friday, February 21, 2014
0 comments

Understanding traversing in circular linked list for Data Structure in 'C

7:54 AMFriday, February 21, 2014

Understanding traversing in circular linked list:

Let us consider the following circular linked list.

Let us assign a pointer PTR with ROOT, address of the first node. PTR is not equal to NULL. So, the circular linked list is not empty.

Repeat while TRUE

                Write: PTR-->INFO    i.e. 6 is written
                PTR-->LINK is not equal to ROOT. So, no break.
                PTR<--PTR-->LINK     Now PTR points to second node
                Write: PTR-->INFO     i.e. 16 is written
                PTR-->LINK is not equal to ROOT. So, no break.
                PTR<--PTR-->LINK       Now PTR points to third node
                Write: PTR-->INFO        i.e.  1 is written
                PTR-->LINK is not equal to ROOT. So, no break.
                PTR<--PTR-->LINK        Now PTR points to third node
               Write: PTR-->INFO         i.e. 61 is written
               PTR-->LINK is equal to ROOT. So, break.
The infinite loop breaks. So, the traversing is complete.

C Program to create and traverse Circular linked list:

     struct node
    {
      int info; struct node*link;
    };
    typedef struct node sn;
    main( )
    {
     sn *root,*temp,*new; char choice=’y’;
     root=NULL;
     clrscr( );
     while (choice==’y’)
     {
      new=(sn*)mallloc(sizeof(sn));
      if(new==NULL)
       {
        printf(“Memory allocation error…”); exit(0);
       }
        printf(“\nEnter node information:”);
        scanf(“%d”,&new->info);
        if(root==NULL)
        {
         root=new;     temp=root;
         }
        else
        {
         temp->link=new;   temp=new;
         }
       new->link=root;
       printf(“Do you want to continue…(y/n)”);
       choice=getche( );
     } /* end of while */
     printf(“\nThe Circular Linked list is:\n\n”);
     temp=root;
     while(1)
      {
       printf(“%d”,temp->info);
       if(temp->link==root)  break;
       temp=temp->link;
      }
     }      /* end of main( )*/


Protected by Copyscape Online Copyright Protection Software

0 comments :

Post a Comment

 
Toggle Footer
Top