Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<stdlib.h>
- struct node
- {
- int data;
- struct node *next;
- }*head;
- void print()
- {
- struct node *temp;
- temp=head;
- if(temp!=NULL)
- {
- printf("The List is :\n");
- while(temp!=NULL)
- {
- printf("%d->",temp->data);
- temp=temp->next;
- }
- }
- printf("\n");
- }
- void insert_at_start(int data)
- {
- struct node *new_node;
- new_node=(struct node *)malloc(sizeof(struct node));
- new_node->data=data;
- new_node->next=head;
- head=new_node;
- }
- void insert_at_end(int data)
- {
- struct node *temp,*new_node;
- temp=head;
- new_node=(struct node *)malloc(sizeof(struct node));
- new_node->data=data;
- if(temp==NULL)
- insert_at_start(data);
- else
- {
- while(temp->next!=NULL)
- {
- temp=temp->next;
- }
- temp->next=new_node;
- new_node->next=NULL;
- }
- }
- void insert_at_middle(int data,int position)
- {
- int i;
- struct node *temp,*new_node;
- new_node=(struct node*)malloc(sizeof(struct node));
- new_node->data=data;
- temp=head;
- for(i=1;i<position-1;i++)
- temp=temp->next;
- new_node->next=temp->next;
- temp->next=new_node;
- }
- void delete_from_start()
- {
- struct node *temp;
- temp=head;
- if(temp==NULL)
- printf("The list is empty.\n");
- else
- {
- head=temp->next;
- free(temp);
- }
- }
- void delete_from_end()
- {
- struct node *temp,*var;
- temp=head;
- while(temp->next!=NULL)
- {
- var=temp;
- temp=temp->next;
- }
- free(temp);
- var->next=NULL;
- }
- int delete_from_middle(int position)
- {
- int i;
- struct node *temp,*temp2;
- temp=head;
- for(i=1;i<(position-1);i++)
- {
- temp=temp->next;
- }
- temp2=temp->next;
- temp->next=temp2->next;
- temp2->next=NULL;
- free(temp2);
- }
- int main()
- {
- head=NULL;
- int i,val,loc;
- printf("1.Insertion at the beginning.\n");
- printf("2.Insertion at the end.\n");
- printf("3.Insert at any position.\n");
- printf("4.Delete from beginning.\n");
- printf("5.Delete from end.\n");
- printf("6.Delete from middle.\n");
- printf("7.Exit.\n");
- while(1)
- {
- printf("Enter Your Choice : ");
- scanf("%d",&i);
- switch(i)
- {
- case 1:
- {
- printf("Enter the value of the node : ");
- scanf("%d",&val);
- insert_at_start(val);
- print();
- break;
- }
- case 2:
- {
- printf("Enter the value of the node : ");
- scanf("%d",&val);
- insert_at_end(val);
- print();
- break;
- }
- case 3:
- {
- printf("Enter the value and position of the node : ");
- scanf("%d%d",&val,&loc);
- insert_at_middle(val,loc);
- print();
- break;
- }
- case 4:
- {
- delete_from_start();
- print();
- break;
- }
- case 5:
- {
- delete_from_end();
- print();
- break;
- }
- case 6:
- {
- printf("Enter the node to be deleted : ");
- scanf("%d",&loc);
- delete_from_middle(loc);
- print();
- break;
- }
- case 7:
- exit (0);
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement