IMPLEMENTATION OF STACKS USING ARRAY & USING LINKED LIST

#include "stdio.h"
#include "conio.h"
#include "malloc.h"
#define MAX 10

struct st_a
{
int topmost;
int stack[MAX] ;
};
struct st_a s;

struct stl
{

int data;
struct stl*next ;
}*top,*p,*q;


void stack_array();
void stack_llist();



void main()
{

int i,ch,ch1;
char c;
clrscr();
printf(" PROGRAM TO IMPLEMENT STACKS USING ARRAY & USING LINKED
LIST");

do
{


printf("Select method to implement stacks...
1.Array
2.linked list
3.Exit
your choice: ");
scanf("%d",&ch);

switch(ch)
{
case 1:
stack_array();
break;
case 2:
stack_llist();
break;
case 3:
exit();
default:
printf("Invalid choice");
break;
}
printf("Return to main menu?y/n:");
scanf("%s",&c);
} while(c=='y');

getch();
}


void stack_array()
{
void push_array();
void pop_array();
void display_array();

int i,ch2 ;
char c1;
printf("IMPLEMENTAION OF STACKS USING ARRAY);

do
{
printf("*******MENU*******");
printf("
1.Push
2.Pop
3.Display
4.Exit
your choice:");
scanf("%d",&ch2);
switch(ch2)
{
case 1:
push_array();
break;
case 2:
pop_array();
break;
case 3:
display_array();
break;
case 4:
exit();
default:
printf("
Invalid choice");
break;
}
printf("Want to perform another operation?y/n:");
scanf("%s",&c1);
} while(c1=='y');

}


int full()
{
if(s.topmost==MAX)
return 1;
else
return 0;
}

int empty()
{
if(s.topmost==0)
return 1;
else
return 0;
}

void push_array()
{
int full();
char ch3;
s.topmost=0;
do{
if(full()==1)
{
printf("The Stack is full!!");
break;
}

else
{
s.topmost++;
printf("Enter the Element to be pushed : ");
scanf("%d",&s.stack[s.topmost]);
printf("Push another element?y/n?:");
//flushall();
scanf("%s",&ch3);
}
} while(ch3=='y' || ch3=='Y');
}

void pop_array()
{
int empty();
char ch;
do{
if(empty()==1)
{
printf("The Stack is Empty!!");
break;
}
else
{
printf("%d has been POPPED!",s.stack[s.topmost]);
s.stack[s.topmost--]=0;
printf("Pop other element?y/n:");
//flushall();
scanf("%s",&ch);
}
} while(ch=='y' || ch=='Y');
}


void display_array()
{
int i;
if(empty()==1)
printf("No Records!!!!!!");
else
{
printf("The contents of the stack are....
);
for(i=s.topmost ;i>=1; i--)
printf("
%d",s.stack[i]);
}
}

/* Implementation of stacks using linked list */

void stack_llist()
{
int* push_llist(struct stl *,struct stl *);
int* pop_llist(struct stl *,struct stl *);
void display_llist(struct stl *);

int i,ch5 ;
char c5;
printf("IMPLEMENTAION OF STACKS USING LINKED LIST);

do
{
printf("*****MENU*******");
printf("
1.Push
2.Pop
3.Display
4.Exit
your choice:");
scanf("%d",&ch5);
switch(ch5)
{
case 1:
top=push_llist(top,p);
break;
case 2:
top=pop_llist(top,q);
break;
case 3:
display_llist(top);
break;
case 4:
exit();
default:
printf("Invalid choice");
break;
}
printf("Want to perform another operation?y/n:");
scanf("%s",&c5);
}while(c5=='y');

}


int* push_llist(struct stl *top,struct stl *p)
{
void display_llist(struct stl *);

int num;
char c7;

do{
printf("Enter the Element to be pushed : ");
scanf("%d",&num);
p=malloc(sizeof(struct stl));
p->data=num;
p->next=NULL;

if(top==NULL)
top=p;

else
{
p->next=top;
top=p;
}
printf("Push another element?y/n?:");
scanf("%s",&c7);

} while(c7=='y' || c7=='Y');
return(top);
}


int* pop_llist(struct stl *top,struct stl *q)
{
void display_llist(struct stl *);
char c8;
do{
if(top==NULL)
{
printf("List is empty!");
break;
}
else
{
q=top;
top=top->next;
q->next=NULL;
free(q);
}
printf("Pop other element?y/n:");
scanf("%s",&c8);

} while(c8=='y' || c8=='Y');
return(top);
}


void display_llist(struct stl *top)
{
if(top==NULL)
printf("stack is empty!!");
else
{
q=top;
printf ( "contents of stack are:" ;
while ( q!= NULL ) /* traverse the entire linked list */
{
printf ( "
%d ", q -> data ) ;
q = q -> next ;
}
}
}

Related Links :

No comments:

Post a Comment


If you face any Problem in viewing code such as Incomplete "For Loops" or "Incorrect greater than or smaller" than equal to signs then please collect from My Web Site CLICK HERE


More Useful Topics...

 

History Of C..

In the beginning was Charles Babbage and his Analytical Engine, a machine
he built in 1822 that could be programmed to carry out different computations.
Move forward more than 100 years, where the U.S. government in
1942 used concepts from Babbage’s engine to create the ENIAC, the first
modern computer.
Meanwhile, over at the AT&T Bell Labs, in 1972 Dennis Ritchie was working
with two languages: B (for Bell) and BCPL (Basic Combined Programming
Language). Inspired by Pascal, Mr. Ritchie developed the C programming
language.

My 1st Program...


#include
#include
void main ()
{
clrscr ();
printf ("\n\n\n\n");
printf ("\t\t\t*******Pankaj *******\n");
printf ("\t\t\t********************************\n");
printf ("\t\t\t\"Life is Good...\"\n");
printf ("\t\t\t********************************");
getch ();
}

Next Step...


#include
#include

void main ()
{
clrscr ();
printf ("\n\n\n\n\n\n\n\n");
printf ("\t\t\t --------------------------- \n\n");

printf ("\t\t\t | IGCT, Info Computers, INDIA | \n\n");
printf ("\t\t\t --------------------------- ");

getch ();

}

Hits!!!