Mega Code Archive

 
Categories / C / Data Structure Algorithm
 

Program to implement Stack as Linked List

#include<stdio.h> #include<conio.h> # 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); } }