LINKED LIST IMPLEMENTATION OF STACK
Aim
To
demonstrate linked list implementation of stack using a C program.
Algorithm
Step
1: [Include all the necessary header files]
Step
2: [Declare the Variables]
Step
3: Read operator

Step
4.1: READ n

Step
4.2.1: READ d
Step
4.2.2: CALL INSERT( start , d)
Step
4.3: [End of while Structure]

Step
5.1: READ x
Step
5.2: CALL del (start,x)

Step
6.1: READ x
Step
6.2: CALL FIND

Step
7.1: READ x
Step
7.2: CALL FINDPREVIOUS

Step
8.1: READ x
Step
8.2: CALL FINDNEXT(start, x)

CALL
len(Start)

CALL
printlist(Start)

CALL
erase (Start)
Step 12: [End of
Main ]
Algorithm For
Find(struct node*p, int x, int *pos)



RETURN
NULL
ELSE

ASSIGN
1 TO *POS+1 AND TEMP’S LLINK FIELD TO TEMP
RETURN
THE TEMP
Algorithm for Previous
(struct node*p, int x)


RETURN
NULL
ELSE



ASSIGN TEMP’S
LINK FIELD TO TEMP
RETURN
THE TEMP
Algorithm For Find
next(struct node*p, int x)


RETURN
NULL
ELSE


ASSIGN
TEMP’S LLINK FIELD TO TEMP
RETURN
THE TEMP’S LINK FIELD
Coding:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
push();
void pop();
void display();
struct node
{
int
data;
struct
node *next;
}*top=NULL;
void main()
{
int
ch;
clrscr();
printf("\n\n1.Push\n\n2.Pop\n\n3.Display");
do
{
printf("\n\nEnter
your Choice :: ");
scanf("%d",&ch);
switch(ch)
{
case
1:
push();
break;
case
2:
pop();
break;
case
3:
printf("\n\nContents
of stack :: \t");
display();
break;
default:
printf("\n\nInvalid
Choice......");
getch();
exit(0);
}
}while(ch<4);
getch();
}
push()
{
int
x;
struct
node *newnode;
newnode=malloc(sizeof(struct
node));
printf("\n\nEnter
the number to be pushed into the stack :: ");
scanf("%d",&x);
newnode->data=x;
if(top==NULL)
{
newnode->next=top;
top=newnode;
}
else
{
newnode->next=top;
top=newnode;
}
printf("\n\nNumber
pushed is %d",x);
return(x);
}
void pop()
{
struct
node *t;
if(top==NULL)
printf("\n\nStack
Underflow");
else
{
t=top;
top=top->next;
printf("\nDeleted
element is %d",t->data);
free(t);
}
getch();
}
void display()
{
struct
node*i;
for(i=top;i!=NULL;i=i->next)
printf("%d
, ",i->data);
if(top==NULL)
printf("Stack
is empty");
getch();
}
Output:
1.Push
2.Pop
3.Display
Enter your Choice :: 1
Enter the number to be pushed into the
stack :: 5
Number pushed is 5
Enter your Choice :: 1
Enter the number to be pushed into the
stack :: 10
Number pushed is 10
Enter your Choice :: 3
Contents of stack :: 10 , 5 ,
Enter your Choice :: 2
Deleted element is 10
Enter your Choice :: 3
Contents of stack :: 5 ,
Enter your Choice :: 5
Invalid Choice......
No comments:
Post a Comment