Page 44 - DCAP605_ADVANCED_DATA_STRUCTURE_AND_ALGORITHMS
P. 44

Unit 2: Linked Lists





                {                                                                               Notes
                int data;
                struct node *left, *right;
                };
                struct dnode *insert(struct dnode *p, struct dnode **q, int n)
                {
                struct dnode *temp;
                /* if the existing list is empty then insert a new node as the
             starting node */
                if(p==NULL)
                  {
                      p=(struct dnode *)malloc(sizeof(struct dnode)); /* creates new
             node data value
                   passed as parameter */
                      if(p==NULL)
                      {
                   printf(“Error\n”);
                          exit(0);
                      }
                      p-> data = n;
                      p-> left = p->right =NULL;
                      *q =p
                   }
                   else
                   {
                      temp = (struct dnode *)malloc(sizeof(struct dnode)); /* creates
             new node using
                      data value passed as
                      parameter and puts its
                     address in the temp
                */
                   if(temp == NULL)
                   {
                printf(“Error\n”);
                       exit(0);
                   }
                   temp-> data = n;
                   temp->left = (*q);
                   temp->right = NULL;
                   (*q) = temp;




                                           LOVELY PROFESSIONAL UNIVERSITY                                    39
   39   40   41   42   43   44   45   46   47   48   49