Thanx a lot !!!!

On Mon, Aug 1, 2011 at 6:32 PM, Amethy hobby <news...@gmail.com> wrote:

> if(start==NULL)
>    {
>        tmp->prev=NULL;
>        // run  here , the start==null, so the start->prev is error
>        start->prev=tmp;//here
>
>        start=tmp;
>     }
>
> On 8月1日, 下午8时41分, Rajesh Kumar <testalgori...@gmail.com> wrote:
> > programs gives segmentation fault when we creat linked list
> > plz help me
> >
> > #include<stdio.h>
> > #include<malloc.h>
> > #include<stdlib.h>
> > struct node
> > {
> >     struct node *prev;
> >     int info;
> >     struct node *next;
> >
> > }*start;
> >
> > main()
> > {
> >     int choice,n,m,po,i;
> >     start=NULL;
> >     while(1)
> >     {
> >         printf("1.Create List\n");
> >         printf("2.Add at begining\n");
> >         printf("3.Add after\n");
> >         printf("4.Delete\n");
> >         printf("5.Display\n");
> >         printf("6.Count\n");
> >         printf("7.Reverse\n");
> >         printf("8.exit\n");
> >         printf("Enter your choice : ");
> >         scanf("%d",&choice);
> >         switch(choice)
> >         {
> >          case 1:
> >             printf("How many nodes you want : ");
> >             scanf("%d",&n);
> >             for(i=0;i<n;i++)
> >             {
> >                 printf("Enter the element : ");
> >                 scanf("%d",&m);
> >                 create_list(m);
> >             }
> >             break;
> >          case 2:
> >             printf("Enter the element : ");
> >             scanf("%d",&m);
> >             addatbeg(m);
> >             break;
> >          case 3:
> >             printf("Enter the element : ");
> >             scanf("%d",&m);
> >             printf("Enter the position after which this element is
> inserted
> > : ");
> >             scanf("%d",&po);
> >             addafter(m,po);
> >             break;
> >          case 4:
> >             printf("Enter the element for deletion : ");
> >             scanf("%d",&m);
> >             del(m);
> >             break;
> >          case 5:
> >             display();
> >             break;
> >          case 6:
> >             count();
> >             break;
> >          case 7:
> >             rev();
> >             break;
> >          case 8:
> >             exit(1);
> >          default:
> >             printf("Wrong choice\n");
> >     }/*End of switch*/
> >    }/*End of while*/
> >
> > }/*End of main()*/
> >
> > create_list(int num)
> > {
> >     struct node *q,*tmp;
> >     tmp= malloc(sizeof(struct node));
> >     tmp->info=num;
> >     tmp->next=NULL;
> >     if(start==NULL)
> >     {
> >         tmp->prev=NULL;
> >         start->prev=tmp;
> >         start=tmp;
> >     }
> >     else
> >     {
> >         q=start;
> >         while(q->next!=NULL)
> >             q=q->next;
> >         q->next=tmp;
> >         tmp->prev=q;
> >     }
> >
> > }/*End of create_list()*/
> >
> > addatbeg(int num)
> > {
> >     struct node *tmp;
> >     tmp=malloc(sizeof(struct node));
> >     tmp->prev=NULL;
> >     tmp->info=num;
> >     tmp->next=start;
> >     start->prev=tmp;
> >     start=tmp;
> >
> > }/*End of addatbeg()*/
> >
> > addafter(int num,int c)
> > {
> >     struct node *tmp,*q;
> >     int i;
> >     q=start;
> >     for(i=0;i<c-1;i++)
> >     {
> >         q=q->next;
> >         if(q==NULL)
> >         {
> >             printf("There are less than %d elements\n",c);
> >             return;
> >         }
> >     }
> >     tmp=malloc(sizeof(struct node));
> >     tmp->info=num;
> >     q->next->prev=tmp;
> >     tmp->next=q->next;
> >     tmp->prev=q;
> >     q->next=tmp;
> >
> > }/*End of addafter() */
> >
> > del(int num)
> > {
> >     struct node *tmp,*q;
> >     tmp=malloc(sizeof(struct node));
> >     if(start->info==num)
> >     {
> >         tmp=start;
> >         start=start->next;  /*first element deleted*/
> >         start->prev = NULL;
> >         free(tmp);
> >         return;
> >     }
> >     q=start;
> >     while(q->next->next!=NULL)
> >     {
> >         if(q->next->info==num)     /*Element deleted in between*/
> >         {
> >             tmp=q->next;
> >             q->next=tmp->next;
> >             tmp->next->prev=q;
> >             free(tmp);
> >             return;
> >         }
> >         q=q->next;
> >     }
> >     if(q->next->info==num)    /*last element deleted*/
> >     {   tmp=q->next;
> >         free(tmp);
> >         q->next=NULL;
> >         return;
> >     }
> >     printf("Element %d not found\n",num);
> >
> > }/*End of del()*/
> >
> > display()
> > {
> >     struct node *q;
> >     if(start==NULL)
> >     {
> >         printf("List is empty\n");
> >         return;
> >     }
> >     q=start;
> >     printf("List is :\n");
> >     while(q!=NULL)
> >     {
> >         printf("%d ", q->info);
> >         q=q->next;
> >     }
> >     printf("\n");
> >
> > }/*End of display() */
> >
> > count()
> > {   struct node *q=start;
> >     int cnt=0;
> >     while(q!=NULL)
> >     {
> >         q=q->next;
> >         cnt++;
> >     }
> >     printf("Number of elements are %d\n",cnt);
> >
> > }/*End of count()*/
> >
> > rev()
> > {
> >     struct node *p1,*p2;
> >     p1=start;
> >     p2=p1->next;
> >     p1->next=NULL;
> >     p1->prev=p2;
> >     while(p2!=NULL)
> >     {
> >         p2->prev=p2->next;
> >         p2->next=p1;
> >         p1=p2;
> >         p2=p2->prev; /*next of p2 changed to prev */
> >     }
> >     start=p1;
> >
> > }/*End of rev()*/
> >
> > --
> > Regards
> > Rajesh Kumar
>
> --
> You received this message because you are subscribed to the Google Groups
> "Algorithm Geeks" group.
> To post to this group, send email to algogeeks@googlegroups.com.
> To unsubscribe from this group, send email to
> algogeeks+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/algogeeks?hl=en.
>
>


-- 
Regards
Rajesh Kumar

-- 
You received this message because you are subscribed to the Google Groups 
"Algorithm Geeks" group.
To post to this group, send email to algogeeks@googlegroups.com.
To unsubscribe from this group, send email to 
algogeeks+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/algogeeks?hl=en.

Reply via email to