Deletion at last in the Circular linked list
C function for Deletion at Last Node
void delete_last(struct link *node) { int node_no=0,count; node=start->next; ptr=start; count=i; if(i==0) { printf("\n List is empty"); exit(0); } while(count) { node_no++; ptr=ptr->next; node=node->next; count--; } node=start->next; ptr=start; while(node_no!=1) { node_no--; ptr=ptr->next; node=node->next; } if(node_no==1) { ptr->next=node->next; free(node); i--; } }
After Deletion
Deletion at the Last in the 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_last(struct link *node) { int node_no=0,count; node=start->next; ptr=start; count=i; if(i==0) { printf("\n List is empty"); exit(0); } while(count) { node_no++; ptr=ptr->next; node=node->next; count--; } node=start->next; ptr=start; while(node_no!=1) { node_no--; ptr=ptr->next; node=node->next; } if(node_no==1) { ptr->next=node->next; free(node); 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_last(node); printf("List Item Are:\n"); display(node); getch(); }