Assignment 7
Name Anushka Shivade
U no UEC2023156
Problem Program to model a singly linked list as a stack (Dynamic implementation of
Stack) and perform
the following operations on it:
a) Push
b) Pop
c) Display.
Program:
#include<stdio.h>
#include<stdlib.h>
struct stack{
int num;
struct stack *next;
}*p,*q,*top,*temp;
void push();
int pop();
void display();
int main(){
int ch ,x;
do{
printf("**************MENU**************\n");
printf("1.Push\n2.Pop\n3.Display\n");
printf("Enter the choice: ");
scanf("%d",&ch);
switch(ch){
case 1:push();
break;
case 2 :
x =pop();
if(x==-1) printf("Stack is empty , no element can be poped\n");
else printf("The element poped is %d",x);
break;
case 3:display();
break;
default: printf("Enter valid choice\n");
}
}while(ch!=4);
return 0;
}
void display(){
if(top==NULL) printf("Stack is empty \n");
else{
q=top;
while (q!=NULL){
printf("%d\t", q->num);
q=q->next;
}
printf("\n");
}
}
void push(){
char c;
do{
p=(struct stack*) malloc(sizeof(struct stack) );
printf("Enter the data : ");
scanf("%d" ,&p->num);
p->next=NULL;
if(top==NULL) top=p;
else{
p->next=top;
top=p;
}
printf("Do you want more data?(y/n): ");
scanf(" %c",&c);
}while(c=='y'||c=='Y');
}
int pop(){
int pop;
if(top==NULL) return -1;
else{
p=top;
pop=top->num;
top=top->next;
p->next =NULL;
}
free(p);
return pop;
}
Output:
PS D:\Anushka\college> cd "d:\Anushka\college\DSA\" ; if ($?) { gcc stackll.c -o stackll } ; if ($?) {
.\stackll }
**************MENU**************
1.Push
2.Pop
3.Display
Enter the choice: 1
Enter the data : 1
Do you want more data?(y/n): y
Enter the data : 6
Do you want more data?(y/n): y
Enter the data : 99
Do you want more data?(y/n): y
Enter the data : 44
Do you want more data?(y/n): y
Enter the data : 5
Do you want more data?(y/n): n
**************MENU**************
1.Push
2.Pop
3.Display
Enter the choice: 2
The element poped is 5**************MENU**************
1.Push
2.Pop
3.Display
Enter the choice: 3
44 99 6 1
**************MENU**************
1.Push
2.Pop
3.Display
Enter the choice: 4
Enter valid choice