Insert an element into a singly linked list SLL

#include<stdio.h>

struct node

{

int data;

struct node *link;

}*header, *new ,*ptr;

void insert();

void traverse();

int main()

{

int ch;

clrscr();

header->link=NULL;

while(1)

{

printf("\n Enter your Choice\n 1.Insert\n 2.Traverse\n 3.Exit\n");

scanf("%d",&ch);

switch (ch)

{

case 1: insert();

break;

case 2:traverse();

break;

default:exit(0);

}

   }

return 0;

}

void insert()

{

int x,pos,key;

new=(struct node *)malloc(sizeof(struct node));

if (new==NULL)

{

printf("\n No Space");

exit(0);

}

printf("\n Enter data part to insert:");

scanf("%d",&x);

printf("\n Enter position to insert \n 1.Insertion at front\n 2.Insertion after key \n 3.Insertion at any\n");

scanf("%d",&pos);

if (pos==1)

{

new->data=x;

new->link=header->link;

header->link=new;

}

else if(pos==2)

{

printf("\n Enter Key after Which we want to insert");

scanf("%d",&key);

ptr=header;

while(ptr->data!=key && ptr->link!=NULL)

ptr=ptr->link;

if (ptr->link==NULL)

{

if (ptr->data==key)

{

new->data=x;

ptr->link=new;

new->link=NULL;

}

else

printf("\n Key %d is not Found",key);

}

else

{

new->data=x;

new->link=ptr->link;

ptr->link=new;

}

}

else

{

ptr=header;

while(ptr->link!=NULL)

ptr=ptr->link;

new->data=x;

ptr->link=new;

new->link=NULL;

}

}

void traverse()

{


    if (header->link==NULL)

    {

printf("\n Link is Empty");

exit(0);

     }

    else

    {


printf("\n Data Parts Of Linked List is :");

ptr=header;

while(ptr->link!=NULL)

{

ptr=ptr->link;

printf("-> %d",ptr->data);

}

     }

}

Comments

Popular posts from this blog

Create a Binary Search Tree of integers and perform the following operations (i)insert (ii) delete (iii). Search (iv) traversals (pre-order, in-order, post-order) BST

Creation Of DLL

Develop non-recursive functions to perform search for a Key value in a given list using (i) Binary Search Non Recursive