0% found this document useful (0 votes)
71 views

Array Implementation of Stack and Queues

The document discusses the implementation of stacks and queues using arrays in C. For stacks, it defines functions to push, pop and display elements. It uses a top variable to track the top of the stack. For queues, it defines functions to insert, delete and display elements. It uses front and rear variables to track the front and rear of the queue. The main function provides a menu to choose these stack and queue operations and uses switch cases to call the corresponding functions.

Uploaded by

Arppitan B.M
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
71 views

Array Implementation of Stack and Queues

The document discusses the implementation of stacks and queues using arrays in C. For stacks, it defines functions to push, pop and display elements. It uses a top variable to track the top of the stack. For queues, it defines functions to insert, delete and display elements. It uses front and rear variables to track the front and rear of the queue. The main function provides a menu to choose these stack and queue operations and uses switch cases to call the corresponding functions.

Uploaded by

Arppitan B.M
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 5

Array Implementation of Stack and Queues

A_2060328_Arppitan

Stack:

#include <stdio.h>
int stack[100],i,j,choice=0,n,top=-1;
void push();
void pop();
void show();
void main ()
{
      
    printf("Enter the number of elements in the stack: ");
    scanf("%d",&n);
    while(choice != 4)
    {
        printf("\n Choose the desired option...\n");
        printf("\n1.Push\n2.Pop\n3.Show\n4.Exit");
        printf("\n Enter your choice \n");
        scanf("%d",&choice);
        switch(choice)
        {
            case 1:
            {
                push();
                break;
            }
            case 2:
            {
                pop();
                break;
            }
            case 3:
            {
                show();
                break;
            }
            case 4:
            {
                printf("Exiting....");
                break;
            }
            default:
            {
                printf("Invalid Choice!!! Please try again!!!! ");
            }
        };
    }
}
  
void push ()
{
    int val;
    if (top == n )
    printf("\n Overflow");
    else
    {
        printf("Enter the value?");
        scanf("%d",&val);
        top = top +1;
        stack[top] = val;
    }
}
  
void pop ()
{
    if(top == -1)
    printf("Underflow");
    else
    top = top -1;
}
void show()
{
    for (i=top;i>=0;i--)
    {
        printf("%d\n",stack[i]);
    }
    if(top == -1)
    {
        printf("Stack is empty");
    }
}

Output:
Queue:

#include<stdio.h>
#include<stdlib.h>
#define maxsize 5
void insert();
void delete();
void display();
int front = -1, rear = -1;
int queue[maxsize];
void main ()
{
    int choice;
    while(choice != 4)
    {

    
        printf("\n1.Insert an element\n2.Delete an element\n3.Display the queue\n4.Exit\n")
;
        printf("\nEnter your choice: ");
        scanf("%d",&choice);
        switch(choice)
        {
            case 1:
            insert();
            break;
            case 2:
            delete();
            break;
            case 3:
            display();
            break;
            case 4:
            exit(0);
            break;
            default:
            printf("\nInvalid Choice!!! Please try again!!!! \n");
        }
    }
}
void insert()
{
    int item;
    printf("\nEnter the element: \n");
    scanf("\n%d",&item);
    if(rear == maxsize-1)
    {
        printf("\nOVERFLOW\n");
        return;
    }
    if(front == -1 && rear == -1)
    {
        front = 0;
        rear = 0;
    }
    else
    {
        rear = rear+1;
    }
    queue[rear] = item;
    printf("\nValue inserted ");
      
}
void delete()
{
    int item;
    if (front == -1 || front > rear)
    {
        printf("\nUNDERFLOW\n");
        return;
              
    }
    else
    {
        item = queue[front];
        if(front == rear)
        {
            front = -1;
            rear = -1 ;
        }
        else
        {
            front = front + 1;
        }
        printf("\nvalue deleted ");
    }
      
      
}
      
void display()
{
    int i;
    if(rear == -1)
    {
        printf("\nEmpty queue\n");
    }
    else
    {   printf("\nprinting values .....\n");
        for(i=front;i<=rear;i++)
        {
            printf("\n%d\n",queue[i]);
        }
    }
}
Output:

You might also like