#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
struct lnklist
{
int data;
struct lnklist *next;
};
typedef struct lnklist NODE ;
NODE *start=NULL;
int n,q;
void insert();
void display();
void delet();
NODE* reverse();
int main (void)
{
int ch=0;
while(ch!=5)
{
printf("\nEnter your choise:\n1. Insert\n2. Display\n3. Delete \n4. Reverse\n5. Exit\n");
scanf("%d",&ch);
switch(ch)
{
case 1: insert();
break;
case 2: display();
break;
case 3: delet();
break;
case 4: start=reverse();
break;
}
}
return 0;
}
void insert()
{
NODE *p,*node;
p=(NODE*)malloc(sizeof(NODE));
if(p==NULL)
printf("NO Space!");
else
{
printf("Enter the element in node: ");
scanf("%d",&p->data);
p->next=NULL;
if(start==NULL)
start=p;
else
{
node=start;
while(node->next!=NULL)
{
node=node->next;
}
node->next=p;
}
}
clrscr();
}
void display()
{
NODE *node;
if(start==NULL)
printf("List is Empty\n\n");
else
{
printf("The elements are: ");
node=start;
while(node!=NULL)
{
printf("%d ",node->data);
node=node->next;
}
}
getch();
clrscr();
}
void delet()
{
NODE *node,*p;
int pos,i;
if(start==NULL)
printf("List is Empty! Deletion can't possible!\n\n");
else
{
node=start;
printf("Enter the position: ");
scanf("%d",&pos);
if(pos==1)
{
start=node->next;
free(node);
}
else
{
for(i=1;i<pos;i++)
{
p=node;
node=node->next;
}
p->next=node->next;
free(node);
}
}
}
NODE* reverse()
{
NODE *p,*q,*node;
{
q=NULL;
node=start;
while(node!=NULL)
{
p=node;
node=node->next;
p->next=q;
q=p;
}
return q;
}
}
Related posts: