Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #define MAX 100
- typedef struct
- {
- int stack[ MAX ];
- int tos;
- }stack_t;
- void push ( stack_t *p_t, int ele )
- {
- if ( p_t->tos == MAX - 1 )
- {
- printf ( "Stack Overflow.\n" );
- return;
- }
- p_t->stack[ ++p_t->tos ] = ele;
- }
- int isEmpty ( stack_t t )
- {
- return ( t.tos == -1 );
- }
- int pop ( stack_t *p_t )
- {
- if ( isEmpty ( *p_t ) )
- {
- printf ( "Stack Underflow.\n" );
- return -1;
- }
- return p_t->stack[ p_t->tos-- ];
- }
- int stackTop ( stack_t t )
- {
- if ( isEmpty ( t ) )
- {
- printf ( "Stack Empty.\n" );
- return -1;
- }
- return t.stack[ t.tos ];
- }
- void display ( stack_t t )
- {
- int i;
- printf ( "STACK:\t" );
- if ( isEmpty ( t ) )
- {
- printf ( "Stack Empty.\n" );
- return;
- }
- for ( i = t.tos; i > -1; i-- )
- printf ( "%6d\t", t.stack[ i ] );
- printf ( "\n" );
- }
- void main ( )
- {
- stack_t s;
- int choice, ele;
- s.tos = -1;
- while ( 1 )
- {
- printf ( "1:\tPush\n2:\tPop\n3:\tStack Top\n4:\tDisplay\n0:\tEXIT\nCHOICE:\t" );
- scanf ( "%d", &choice );
- printf ( "\n" );
- if ( !choice )
- break;
- switch ( choice )
- {
- case 1:
- printf ( "Enter element to push:\t" );
- scanf ( "%d", &ele );
- push ( &s, ele );
- display ( s );
- break;
- case 2:
- if ( isEmpty ( s ) )
- {
- printf ( "Stack Underflow.\n" );
- continue;
- }
- printf ( "Popped element:\t%d\n", pop ( &s ) );
- display ( s );
- break;
- case 3:
- if ( isEmpty ( s ) )
- {
- printf ( "Stack Empty.\n" );
- continue;
- }
- printf ( "Stack Top:\t%d\n", stackTop ( s ) );
- break;
- case 4:
- display ( s );
- break;
- default:
- printf ( "Invalid Input.\nTry Again.\n" );
- continue;
- }
- }
- display ( s );
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement