Implementation of Stack using Linked List.
#include<stdlib.h>
#include<stdio.h>
void push(int);
void pop();
void display();
int ele;
struct stack{
int data;
struct stack *next;
};
struct stack *top=NULL;
int main(){
int opt;
printf("::Stack Operations::\n1. Push\n2. Pop\n3. Display\n4. Exit\n");
do{
printf("Enter your option:\n");
scanf("%d",&opt);
switch(opt){
case 1:
printf("Enter element:\n");
scanf("%d",&ele);
push(ele);
break;
case 2:
pop();
break;
case 3:
display();
break;
case 4:
exit(0);
break;
default:
printf("Wrong option.\n");
}
}while(opt!=4);
return 0;
}
void push(int ele){
struct stack *ptr;
ptr=(struct stack*)malloc(sizeof(struct stack));
ptr->data=ele;
ptr->next=top;
top=ptr;
}
void pop(){
struct stack *ptr;
if(top==NULL){
printf("Stack underflow.\n");
return;
}
ptr=top;
top=top->next;
printf("Popped item is %d.\n",ptr->data);
free(ptr);
}
void display(){
struct stack *ptr;
if(top==NULL){
printf("Stack empty.\n");
return;
}
ptr=top;
printf("Stack elements are:\n");
while(ptr!=NULL){
printf("%d->",ptr->data);
ptr=ptr->next;
}
printf("NULL\n");
}
#include<stdio.h>
void push(int);
void pop();
void display();
int ele;
struct stack{
int data;
struct stack *next;
};
struct stack *top=NULL;
int main(){
int opt;
printf("::Stack Operations::\n1. Push\n2. Pop\n3. Display\n4. Exit\n");
do{
printf("Enter your option:\n");
scanf("%d",&opt);
switch(opt){
case 1:
printf("Enter element:\n");
scanf("%d",&ele);
push(ele);
break;
case 2:
pop();
break;
case 3:
display();
break;
case 4:
exit(0);
break;
default:
printf("Wrong option.\n");
}
}while(opt!=4);
return 0;
}
void push(int ele){
struct stack *ptr;
ptr=(struct stack*)malloc(sizeof(struct stack));
ptr->data=ele;
ptr->next=top;
top=ptr;
}
void pop(){
struct stack *ptr;
if(top==NULL){
printf("Stack underflow.\n");
return;
}
ptr=top;
top=top->next;
printf("Popped item is %d.\n",ptr->data);
free(ptr);
}
void display(){
struct stack *ptr;
if(top==NULL){
printf("Stack empty.\n");
return;
}
ptr=top;
printf("Stack elements are:\n");
while(ptr!=NULL){
printf("%d->",ptr->data);
ptr=ptr->next;
}
printf("NULL\n");
}
::Stack Operations::
1. Push
2. Pop
3. Display
4. Exit
Enter your option:
1
Enter element:
5
Enter your option:
1
Enter element:
10
Enter your option:
1
Enter element:
15
Enter your option:
3
Stack elements are:
15->10->5->NULL
Enter your option:
2
Popped item is 15.
Enter your option:
3
Stack elements are:
10->5->NULL
Enter your option:
4
1. Push
2. Pop
3. Display
4. Exit
Enter your option:
1
Enter element:
5
Enter your option:
1
Enter element:
10
Enter your option:
1
Enter element:
15
Enter your option:
3
Stack elements are:
15->10->5->NULL
Enter your option:
2
Popped item is 15.
Enter your option:
3
Stack elements are:
10->5->NULL
Enter your option:
4