Download as rtf, pdf, or txt
Download as rtf, pdf, or txt
You are on page 1of 6

10.

Write a C Program using dynamic variables and pointers to


construct a stack of integers using singly linked list and to
perform the following operations:
a: Push
b: Pop
c: Display
The program should print appropriate messages for stack
overflow and stack empty.

PROGRAM

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>

struct node
{
int info;
struct node *link;
};

typedef struct node NODE;

NODE *start=NULL;

void push()
{

NODE *tmp;
int item;
tmp=(NODE*)malloc(sizeof(NODE));
if(tmp==NULL)
{
printf("\nStack Overflow..\n");
getch();
return;
}
printf("\nEnter the element to be inserted\n");
scanf("%d",&item);
tmp->info=item;
if(start==NULL)
{
start=tmp;
tmp->link=NULL;
}
else
{
tmp->link=start;
start=tmp;
}
printf("\n%d Inserted..\n",tmp->info);
getch();
}

void pop()
{
NODE *tmp;
int item;
if(start==NULL)
{
printf("\nStack Underflow..\n");
getch();
return;
}
printf("\nElement to be popped is %d",start->info);
item=start->info;
tmp=start;
start=start->link;
free(tmp);
printf("\nElement popped is %d",item);
getch();
}

void display()
{
NODE *tmp;
if(start==NULL)
{
printf("\nStack is empty..\n");
getch();
return;
}
printf("\nStack elements are:\n");
for(tmp=start;tmp!=NULL;tmp=tmp->link)
{
printf("\n%d",tmp->info);
}
getch();
}

void main()
{
int ch;
for(;;)
{
clrscr();
printf("\nMenu\n\n1.Push\n2.pop\n3.display\n4.exit\nEnter your choice..\n");
scanf("%d",&ch);

switch(ch)
{
case 1:push();break;
case 2:pop();break;
case 3:display();break;
case 4: exit(0);
default:printf("\nWrong menu choice\n");
getch();
}
}
}
OUTPUT

Menu

1.Push
2.pop
3.display
4.exit
Enter your choice..
3

Stack is empty

Menu

1.Push
2.pop
3.display
4.exit
Enter your choice..
1

Enter the element to be inserted


11

11 Inserted

Menu

1.Push
2.pop
3.display
4.exit
Enter your choice..
1

Enter the element to be inserted


22

22 Inserted

Menu

1.Push
2.pop
3.display
4.exit
Enter your choice..
1

Enter the element to be inserted


33
33 Inserted

Menu

1.Push
2.pop
3.display
4.exit
Enter your choice..
1

Enter the element to be inserted


44

44 Inserted

Menu

1.Push
2.pop
3.display
4.exit
Enter your choice..
1

Enter the element to be inserted


55

55 Inserted

Menu

1.Push
2.pop
3.display
4.exit
Enter your choice..
3

Stack elements are:

11
22
33
44
55

Menu

1.Push
2.pop
3.display
4.exit
Enter your choice..
2

Element to be popped is 55

Element popped is 55

Menu

1.Push
2.pop
3.display
4.exit
Enter your choice..
2

Element to be popped is 44

Element popped is 44

Menu

1.Push
2.pop
3.display
4.exit
Enter your choice..
2

Element to be popped is 33

Element popped is 33

Menu

1.Push
2.pop
3.display
4.exit
Enter your choice..
2

Element to be popped is 22

Element popped is 22

Menu

1.Push
2.pop
3.display
4.exit
Enter your choice..
2
Element to be popped is 11

Element popped is 11

Menu

1.Push
2.pop
3.display
4.exit
Enter your choice..
2

Stack Underflow

Menu

1.Push
2.pop
3.display
4.exit
Enter your choice..
4

You might also like