Deletion at given location in the Circular linked list
C function for Deletion at location in Circular linked list
void delete_Location(struct link *node) { int node_no=1,delete_no,flag=0,count; node=start->next; ptr=start; count=i; printf("\n Enter position where you want to delete node:"); scanf("%d",&delete_no); while(count) { if(node_no==delete_no) { ptr->next=node->next; free(node); flag=1; break; } else { ptr=ptr->next; node=node->next; } node_no++; count--; } if(flag==0) { printf("\n Position not found"); } else { i--; } }
After Deletion
Deletion at the Location in Circular linked list
#include<stdio.h> #include<conio.h> #include<stdlib.h> struct link { int data; struct link *next; }; int i=0; struct link *node,*start,*ptr,*new1; void create_link(struct link *node) { char ch; start->next=NULL; node=start; fflush(stdin); printf("\n Enter 'n' for break:"); ch=getchar(); while(ch!='n') { node->next=(struct link *)malloc(sizeof(struct link)); node=node->next; printf("\n Enter data for node:"); scanf("%d",&node->data); node->next=start; fflush(stdin); printf("\n Enter 'n' for break:"); ch=getchar(); i++; } } void delete_Location(struct link *node) { int node_no=1,delete_no,flag=0,count; node=start->next; ptr=start; count=i; printf("\n Enter position where you want to delete node:"); scanf("%d",&delete_no); while(count) { if(node_no==delete_no) { ptr->next=node->next; free(node); flag=1; break; } else { ptr=ptr->next; node=node->next; } node_no++; count--; } if(flag==0) { printf("\n Position not found"); } else { i--; } } void display(struct link *node) { int count; node=start->next; count=i; while(count) { printf("\t%d",node->data); node=node->next; count--; } } void main() { char ch; clrscr(); create_link(node); delete_Location(node); printf("List Item Are:\n"); display(node); getch(); }