Oct 4, 2011

C program to implement stack.

Data structures using C,
Write a C program to implement stack. Stack is a data structure in which the objects are arranged in a non linear order. In stack, elements are added or deleted from only one end, i.e. top of the stack. Stack is a LIFO data structure. LIFO - Last in First Out Perform PUSH(insert operation), POP(Delete operation) and Display stack . Read more about C Programming Language .

/***********************************************************
* You can use all the programs on  www.c-program-example.com
* for personal and learning purposes. For permissions to use the
* programs for commercial purposes,
* contact info@c-program-example.com
* To find more C programs, do visit www.c-program-example.com
* and browse!
* 
*                                  Happy Coding
***********************************************************/



#include <stdio.h>
#include <conio.h>
#define MAXSIZE 5

struct stack            /* Structure definition for stack */
{
 int stk[MAXSIZE];
 int top;
};

typedef struct stack STACK;
STACK s;

/* Function declaration/Prototype*/

void push (void);
int  pop(void);
void display (void);

void main ()
{
 int choice;
 int option = 1;

 clrscr ();

 s.top = -1;

 printf ("STACK OPERATION\n");
 while (option)
 {
  printf ("------------------------------------------\n");
  printf ("   1 --> PUSH            \n");
  printf ("   2 --> POP            \n");
  printf ("   3 --> DISPLAY            \n");
  printf ("   4 --> EXIT     \n");
  printf ("------------------------------------------\n");

  printf ("Enter your choice\n");
  scanf ("%d", &choice);

  switch (choice)
  {
  case 1: push();
  break;
  case 2: pop();
  break;
  case 3: display();
  break;
  case 4: return;
  }

  fflush (stdin);
  printf ("Do you want to continue(Type 0 or 1)?\n");
  scanf ("%d", &option);
 }
}

/*Function to add an element to the stack*/
void push ()
{
 int num;
 if (s.top == (MAXSIZE - 1))
 {
  printf ("Stack is Full\n");
  return;
 }
 else
 {
  printf ("Enter the element to be pushed\n");
  scanf ("%d", &num);
  s.top = s.top + 1;
  s.stk[s.top] = num;
 }
 return;
}


/*Function to delete an element from the stack*/
int pop ()
{
 int num;
 if (s.top == - 1)
 {
  printf ("Stack is Empty\n");
  return (s.top);
 }
 else
 {
  num = s.stk[s.top];
  printf ("poped element is = %d\n", s.stk[s.top]);
  s.top = s.top - 1;
 }
 return(num);
}

/*Function to display the status of the stack*/
void display ()
{
 int i;
 if (s.top == -1)
 {
  printf ("Stack is empty\n");
  return;
 }
 else
 {
  printf ("\nThe status of the stack is\n");
  for (i = s.top; i >= 0; i--)
  {
   printf ("%d\n", s.stk[i]);
  }
 }
 printf ("\n");
}
Read more Similar C Programs
Data Structures

Learn C Programming
You can easily select the code by double clicking on the code area above.

To get regular updates on new C programs, you can

You can discuss these programs on our Facebook Page. Start a discussion right now,

our page!

Share this program with your Facebook friends now! by liking it


(you can send this program to your friend using this button)

Like to get updates right inside your feed reader? Grab our feed!