Program to implement Stack as Linked List

#include
#include
# include "malloc.h"
struct node
{
int data;
struct node *link;
}          ;
struct node  *top;

void main()
{
void push(int);
void display();
int wish, num,will,a;
wish = 1;
top = NULL;
clrscr();
printf("Program for Stack as Linked List demo..
");
while(wish == 1)
{
printf("
Main Menu
1.Enter data in stack
2.Delete from stack
");
scanf("%d",&will);
switch(will)
{
case 1:
printf("
Enter the data");
scanf("%d",&num);
push(num);
display();
break;
case 2:
a=pop();
printf("
Value returned from top of the stack is %d",a);
break;
default:
printf("
Invalid choice");
}
printf("
Do you want to continue, press 1");
scanf("%d",&wish);
}
}


void push(int y)
{
struct node *x;
x=malloc(sizeof(struct node));
printf("
 Address of newly created node x is %d",x);
x->data = y;
x->link = top;
top = x;
}
void display()
{
int i =0;
struct node * temp;
temp = top;

while(temp!=NULL)
{
printf("
Item No. %d  :  Data %d    Link %d ",i++,temp->data,temp->link);
temp=temp->link;
}
}

/// THIS FUNCTION REMOVES TOP NODE FROM  THE STACK AND RETURNS ITS VALUE///

int pop()
{
  int a;
  if(top==NULL)
  {printf("
STACK EMPTY...

"); return 0;}
  else
  {
  a=top->data;
  printf("The value returned is %d ",a);
  free(top);
  top=top->link;            return (a);
  }
}

0 comments:

Post a Comment