Skip to main content

STACK Using Linear Array

/**
    Program Name: STACK

    Description: This Program implements Stack Data Structure using Linear Array

    Author:  Tauqirul Haque
       
*/
       

#define SIZE 5

int stack[SIZE];
int top = -1; // this is the initial condition

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

int main()
{
    int choice;
    while(choice != 4)
    {
        printf("\n\t\t\t1. Push an Element ");
        printf("\n\t\t\t2. POP an Element");
        printf("\n\t\t\t3. Display The Stack");
        printf("\n\t\t\t4. Exit Program");
       
        printf("\nEnter Your Choice #  ");
        scanf("%d",&choice);
       
        switch(choice)
        {
            case 1:
                    push();
                    break;
            case 2:
                    pop();
                    break;
                   
            case 3:
                    display();
                    break;       
            case 4:
                    printf("\n\nProgram Terminated ...\n");
                    exit(0);
        }
    }
}

void push()
{
    int item;
    printf("\nEnter The Element You Want to Insert #  ");
    scanf("%d",&item);
   
    if(top == SIZE -1)
    {
        printf("\n STACK OVERFLOW ....\n\n");
        return;
    }
   
    top++;  //incrementing the top
   
    stack[top] = item;  //adding the new element
}

void pop()
{
    int item;
   
    if(top == -1)
    {
        printf("\n\nSTACK UNDERFLOW .. \n\n");
        return;
    }
   
    item = stack[top];
    top--;
    printf("\nThe Element POPed Out is #  %d \n",item);
}

void display()
{
    if(top==-1)
    {
        printf("\n\nThe Stack Is Empty\n\n");
        return;
    }
    printf("\n\nThe Elements in the Stack Are .. \n");
    for(int i=top; i>=0; i--)
    {
        printf("%5d",stack[i]);
    }
}



       

Comments

Popular posts from this blog

SIMPLE QUEUE

/**     Program Name: SIMPLE QUEUE     Description: This program is for Implementing Simple QUEUE     Author:  Tauqirul Haque         */ #define SIZE 3 int front = -1; int rear = -1; int queue[SIZE]; void deleteElement(); void insertElement(); void displayElement(); void main() {     int ch;     while(ch !=4)     {         printf("\n\t\t1. Insert into queue..\n");         printf("\t\t2. Delete From Queue...\n");         printf("\t\t3. Diplay Queue...\n");         printf("\t\t4. Exit Program ...\n");                 printf("Enter Your Choice #  ");         scanf("%d",&ch);         ...

BUBBLE SORT

/**     Program Name: BUBBLE SORT     Description: This Program sorts a Given Array in Ascending Order     Author:  Tauqirul Haque         */ #define SIZE 10 void bubbleSort(int data[SIZE]); void displayElement(int data[SIZE]); void main() {     int data[SIZE] = { 45,34,66,89,45,34,76,22,79, 12};         printf("\nThe Original Array Before Sorting ... ");     displayElement(data);         printf("\nArray After Sorting ... ");     bubbleSort(data);     displayElement(data);     } void displayElement(int data[SIZE]) {     int i;     for(i=0; i     {         printf("\nData[%d]  =  %d",i,data[i]);     }     printf("\n"); } void ...

Singly Linked List

/**     Program Name: Singly Linked List     Description: This Program is for Implemeting Singly Linked List     Author:  Tauqirul Haque         */ struct Linklist {     int item;     struct Linklist *next; }; typedef struct Linklist node; void insertAtBeginning(node **); void createAppendNode(node **); void insertInMiddle(node **); void deleteNode(node **); void displayNode(node **); void countNode(node **);  void searchElement(node **); void reverse(node **); void main() {     node *head = NULL;     int choice = 0;     while(choice != 9)     {             printf("\n\t\t\t1. Add Node At The Beginning ");     printf("\n\t\t\t2. Insert Element in the Middle ");     printf("\n\t\t\t3. Append New Node "); ...