Program insertion of a node into any circular linked list, Data Structure & Algorithms

Assignment Help:

Program Insertion of a node into any Circular Linked List

Figure depicts a Circular linked list from which an element was deleted.

ALGORITHM (Deletion of an element from a Circular Linked List)

Step 1  Begin

Step 2  if the list is empty, element cannot be eliminated.

Step 3  else, if element desire  to be deleted at first node, then make the start (head) to point to the second element.

Step 4  else, Removeelement from the list by calling find function & returning the found address of the element.

Step 5  End.

2108_Program Insertion of a node into any Circular Linked List.png

Figure: A Circular Linked List through which an element was deleted

(Dotted line indicates the linked that existed prior to deletion)

Program demonstrated the code for the deletion of an element from the Circular linked list.

#include

#include

#define NULL 0

structlinked_list

{

int data;

structlinked_list *next;

};

typedefstructlinked_listclist;

clist *head, *s;

/* prototype of find and delete_function*/

clist * delete_clist(clist *);

clist * find(clist *, int);

/*description of delete_clist      */

clist *delete_clist(clist *start)

{

int key; clist * f, * temp;

printf("\n enter the element to be deleted \n");

scanf("%d", &key);

if(start->data == key)

{

temp=start->next; free(start);

start=temp;

}

else

{

f = find(start,key);

if(f==NULL)

printf("\n key not fund");

else

{

}

}

temp = f->next->next;

free(f->next);

f->next=temp;

 

return(start);

}

/*description of find function */

clist * find(clist *start, int key)

{

if(start->next->data == key)

return(start);

if(start->next->next == NULL)

return(NULL);

else

find(start->next, key);

}

void main()

{

voidcreate_clist(clist *);

int count(clist *);

void traverse(clist *);

head=(clist *)malloc(sizeof(clist));

s=head;

create_clist(head);

printf(" \n traversing the created clist and the starting address is %u \n", head);

traverse(head);

printf("\n number of elements in the clist   %d \n", count(head));

head=delete_clist(head);

printf(" \n traversing the clist after delete_clistand starting address is following %u \n",head);

traverse(head);

}

voidcreate_clist(clist *start)

{

printf("inputthe element -1111 for coming out of loop\n");

scanf("%d", &start->data);

if(start->data == -1111)

start->next=s;

else

{

start->next=(clist*)malloc(sizeof(clist));

create_clist(start->next);

}

}

void traverse(clist *start)

{

if(start->next!=s)

{

printf("data is %d \t next element address is %u\n", start->data,  start- traverse(start->next);

}

}

if(start->next == s)

printf("data is %d \t next element address is %u\n",start->data,   start->next);

int count(clist *start)

{

if(start->next == s)

return 0;

else

}

return(1+count(start->next));

Program: Deletion of an element from the circular linked list


Related Discussions:- Program insertion of a node into any circular linked list

Determine the greatest common divisor, Determine the greatest common diviso...

Determine the greatest common divisor (GCD) of two integers, m & n. The algorithm for GCD might be defined as follows: While m is greater than zero: If n is greater than m, s

Explain dijkstra''s algorithm, Explain Dijkstra's algorithm Dijkstra's ...

Explain Dijkstra's algorithm Dijkstra's algorithm: This problem is concerned with finding the least cost path from an originating node in a weighted graph to a destination node

Hashing, what is hashing? what are diffrent method of hashing?

what is hashing? what are diffrent method of hashing?

Complexity of an algorithm, An algorithm is a sequence of steps to solve a ...

An algorithm is a sequence of steps to solve a problem; there may be more than one algorithm to solve a problem. The choice of a particular algorithm depends upon following cons

Bst created in pre- order, Q. Make a BST for the given sequence of numbe...

Q. Make a BST for the given sequence of numbers. 45,32,90,34,68,72,15,24,30,66,11,50,10 Traverse the BST formed in  Pre- order, Inorder and Postorder.

Write an algorithm inputs speed of cars using pseudocode, Write an algorith...

Write an algorithm by using pseudocode which: Inputs top speeds of 5000 cars Outputs fastest speed and the slowest speed Outputs average speed of all the 5000 cars

Undirected graph and adjacency matrix, Q. Consider the specification writte...

Q. Consider the specification written below of a graph G V(G ) = {1,2,3,4} E(G ) = {(1,2), (1,3), (3,3), (3,4), (4,1)} (i)        Draw the undirected graph. (

Total impedent of the circuit, an electrical student designed a circuit in...

an electrical student designed a circuit in which the impedence in one part of a series circuit is 2+j8 ohms and the impedent is another part of the circuit is 4-j60 ohm mm program

Write Your Message!

Captcha
Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd