// 1. BASIC STACK OPERATION OVER 1D ARRAY
#include<stdio.h>
#include<conio.h>
#define MAX 4
int top=-1;
int stack[MAX];
void push()
{
int i;
printf("\nEnter A Number To Store it Into Current Stack:: ");
scanf("%d",&i);
if(top==MAX)
{
printf("\nSorry Stack is FULL");
}else
{
stack[++top]=i;
printf("\nNumber Added!!!");
}
}
void pop()
{
if(top==-1)
{
printf("\nStack is empty!");
}else{
printf("\nTOP value is :: %d",stack[top--]);
printf("\nOne Value Popped");
}
}
void main()
{
int ch,f=0;
clrscr();
while(f<=1)
{
printf("\n1. ADD VALUE\n2. POP VALUE\n3. EXIT");
scanf("%d",&ch);
switch(ch)
{
case 1:
push();
getch();
break;
case 2:
pop();
getch();
break;
case 3:
exit();
default:
printf("\nWrong Input");
}
}
}
//2. BASIC STACK OPERATION OVER LINK LIST
#include<stdio.h>
#include<conio.h>
struct node
{
int info;
struct node *link;
}*top=NULL;
void push()
{
struct node *tmp;
int data;
tmp=(struct node*)malloc(sizeof(struct node));
printf("\nEnter The Element :: ");
scanf("%d",&data);
tmp->info=data;
tmp->link=top;
top=tmp;
printf("\nItem Added");
}
void pop()
{
struct node *tmp;
if(top==NULL)
{
printf("\nStack Empty!");
}else
{
tmp=top;
printf("\nTOP VALUE IS :: %d",tmp->info);
top=top->link;
printf("\nOne Item POPPED");
}
}
void display()
{
struct node *tmp;
tmp=top;
if(top==NULL)
{
printf("\nStack is Empty");
}else{
while(tmp!=NULL)
{
printf("\n ELEMENT :: %d",tmp->info);
tmp=tmp->link;
}
}
}
void main()
{
int ch,f=0;
clrscr();
while(f<=1)
{
printf("\n1. ADD VALUE\n2. POP VALUE\n3. DISPLAY VALUES\n4. EXIT");
scanf("%d",&ch);
switch(ch)
{
case 1:
push();
getch();
break;
case 2:
pop();
getch();
break;
case 3:
display();
getch();
break;
case 4:
exit();
default:
printf("\nWrong Input");
}
}
}
Comments
Post a Comment