Creation of a circular linked list, Data Structure & Algorithms

Assignment Help:

Program: Creation of a Circular linked list

ALGORITHM (Insertion of an element into a Circular Linked List)

Step 1        Begin

Step 2      if the list is empty or new element comes before the start (head) element, then insert the new element as start element.

Step 3          else, if the new element comes after the last element, then insert the new element at the end element and adjust the pointer of last element to the start element.

Step 4      else, insert the new element in the list by using the find function. find function returns  to the address of the found element to the insert_list function.

Step 5                End.

If new item is to be added after an existing element, then, call the find function recursively to trace the 'key' element. The new element is added before the 'key' element using above algorithm.

Figure demonstrated the Circular linked list with a new element that is to be inserted. Figure depicts a Circular linked list along with the new element added between first & second nodes of Figure.

804_Creation of a Circular linked list.png

Figure: A Circular Linked List  after  insertion of the new element between first and second nodes

(Dotted lines depict the links prior to insertion)

Program demonstrated the code for insertion of a node into a Circular linked list.

#include

#include

#define NULL 0 structlinked_list

{

int data;

structlinked_list *next;

};

typedefstructlinked_listclist;

clist *head, *s;

/* prototype of find and insert functions */

clist * find(clist *, int);

clist * insert_clist(clist *);

/*definition of insert_clist function */

clist * insert_clist(clist *start)   

{

clist *n, *n1;

int key, x;

printf("Insert new value for the new element");

scanf("%d", &x);

printf("eneter key element");

scanf("%d",&key);

if(start->data ==key)

}

else

{

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

n->data=x;

n->next = start;

start=n;

n1 = find(start, key);

if(n1 == NULL)

printf("\n not found \n");

else

{

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

n->data=x;

n->next=n1->next;

n1->next=n;

}

}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",traverse(head);

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

head=insert_clist(head);

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

traverse(head);

}

voidcreate_clist(clist *start)

 

 

{

printf("input 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));

}


Related Discussions:- Creation of a circular linked list

Best case, Best Case: If the list is sorted already then A[i] T (n) = ...

Best Case: If the list is sorted already then A[i] T (n) = c1n + c2 (n -1) + c3(n -1) + c4 (n -1)  = O (n), which indicates that the time complexity is linear. Worst Case:

Define ordinary variable, Ordinary variable An ordinary variable of a e...

Ordinary variable An ordinary variable of a easy data type can store a one element only

Order of the matrix, /* The program accepts matrix like input & prints the ...

/* The program accepts matrix like input & prints the 3-tuple representation of it*/ #include void main() { int a[5][5],rows,columns,i,j; printf("enter the order of

Array implementation of a circular queue, A circular queue can be implement...

A circular queue can be implemented through arrays or linked lists. Program 6 gives the array implementation of any circular queue. Program 6: Array implementation of any Circu

Analyze an algorithm, In order to analyze an algorithm is to find out the a...

In order to analyze an algorithm is to find out the amount of resources (like time & storage) that are utilized to execute. Mostly algorithms are designed to work along with inputs

Define doubly linked list, A list item stores pointers and an element ...

A list item stores pointers and an element to predecessor and successor. We call a pointer to a list item a handle . This looks simple enough, but pointers are so powerful tha

Definitions of graph, A graph G might be defined as a finite set V of verti...

A graph G might be defined as a finite set V of vertices & a set E of edges (pair of connected vertices). The notation utilized is as follows: Graph G = (V, E) Consider the g

The theta-notation, This notation bounds a function to in constant factors....

This notation bounds a function to in constant factors. We say f(n) = Θ(g(n)) if there presents positive constants n 0 , c 1 and c 2 such that to the right of n 0 the value of f

Sparse matrix, How sparse matrix stored in the memory of a computer?

How sparse matrix stored in the memory of a computer?

DAA, what do we use asymptotic notation in study of algorithm?Describe vari...

what do we use asymptotic notation in study of algorithm?Describe various asymptotic notation and give their significance.

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