Friday, 22 June 2012

write a c program to create a singly linked list,reverse is and display both list


/*write a c program to create a singly linked list,reverse is and
display both list*/
#include<stdio.h>
#include<conio.h>
struct node
{
int data;
struct node *next;
}*q,*start,* temp;
int *p,n=0,i;
void create();
void display();
void reverse();
void main()
{
clrscr();
create();
display();
reverse();
getch();
}
void create()
{
char ch='y';
while(ch=='y'||ch=='Y')
{
temp=(struct node *)malloc(sizeof(struct node));
printf("\nenter the number:-");
scanf("%d",&temp->data);
n++;
temp->next=NULL;
if(start==NULL)
start=temp;
else
{
q=start;
while(q->next!=NULL)
{
q=q->next;
}
q->next=temp;
}
printf("\ndo you want enter element(Y|N):-");
scanf("%s",&ch);
}
}
void display()
{
p=(int *)malloc(n*sizeof(int));
if(start==NULL)
printf("\nlinked list is empty");
else
{
printf("\nelement in singly linked list are:-\n");
q=start;
while(q!=NULL)
{
printf("%d\n",q->data);
*(p+i)=q->data;
i++;
q=q->next;
}
}
}
void reverse()
{
n--;
printf("\nlinked list in reverse order:-");
for(i=n;i>=0;i--)
printf("\n%d",*(p+i));
}
/*
enter the number:-5

do you want enter element(Y|N):-y

enter the number:-7

do you want enter element(Y|N):-y

enter the number:-2

do you want enter element(Y|N):-n

element in singly linked list are:-
5
7
2

linked list in reverse order:-
2
7
5
*/

No comments: