0% found this document useful (0 votes)
4 views4 pages

Singly Linked List

Linked List

Uploaded by

MONAL TORNEY
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views4 pages

Singly Linked List

Linked List

Uploaded by

MONAL TORNEY
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

#include<stdio.

h>
#include<conio.h>
#include<malloc.h>

/*For creation of Node*/


struct node
{
int data;
struct node *link;
};
/*Various methods for adding and deleting a node from liked list*/
void append(struct node** , int);
void addatbeg(struct node**,int);
void addafter( struct node*,int,int);
void display(struct node*);
int count( struct node*);
void del(struct node** ,int);

int main()
{
struct node *p;
p = NULL;

printf("No of elements in the Linked List =%d\n",count(p));


append(&p,14);
append(&p,30);
append(&p,25);
append(&p,42);
append(&p,17);

display(p);

addatbeg(&p,999);
addatbeg(&p,888);
addatbeg(&p,777);

display(p);

addafter(p,7,0);
addafter(p,2,1);
addafter(p,5,99);

display(p);
printf("No. of elements in the Linked List =%d\n",count(p));

del(&p,99);
del(&p,1);
del(&p,10);

display(p);

printf("No. of elements in the Linked List =%d\n",count(p));


return 0;
}

/*Function for append a node at the end*/


void append( struct node **q , int num)
{
struct node *temp,*r;
if(*q == NULL)
{
temp = (struct node *) malloc (sizeof(struct node));
temp->data = num;
temp->link = NULL;
*q = temp;
}
else
{
temp=*q;
while(temp->link!=NULL)
{
temp = temp->link;

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


r->data = num;
r->link = NULL;
temp->link = r;
}

void addatbeg( struct node **q , int num)


{
struct node *temp;

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


temp->data = num;
temp->link = *q;
*q = temp;

void addafter( struct node *q ,int loc, int num)


{
struct node *temp,*r;
int i;
temp = q;
for(i=0;i<loc;i++)
{
temp = temp->link;
if(temp == NULL)
{
printf("There are less than %d ellements in lits\n",loc);
return;
}
}
r = (struct node *) malloc (sizeof(struct node));
r->data = num;
r->link = temp->link;
temp->link=r;
}

void display(struct node *q)


{
while(q!=NULL)
{
printf("%d",q->data);
q=q->link;
}
printf("\n");
}

int count( struct node *q)


{
int c=0;
while(q!=NULL)
{
q=q->link;
c++;
}
return c;
}
void del(struct node **q , int num)
{
struct node *old ,*temp;
temp =*q;
while(temp!=NULL)
{
if(temp->data ==num)
{
if(temp==*q)
{
*q=temp->link;
}
else
{
old->link =temp->link;
}
free(temp);
return;
}
else
{
old =temp ;
temp=temp->link;
}
}
printf("Element %d not found\n",num);
}

You might also like