STACK Implementation using C++ Structure with More than One Item

Stack implementation using structure in C++: In this tutorial, we will learn how to implement a stack using a structure with more than one item using a C++ program? By IncludeHelp Last updated : July 31, 2023

A STACK is a simple Data Structure, it can be implemented as an array or as Linked List, Stack has only One TOP End, item can be pushed (add) and popped (remove) by only this End (TOP Pointer). Array follows LIFO (Last In First Out) property, it means the Item that is inserted Last will be popped first.

In this tutorial, we will learn how to implement STACK using C++ Structure to have more than one item in the structure.

This example will perform PUSH, POP, TRAVERSE operations on it.

STACK Implementation using C++ Structure with More than One Item

#include <iostream>
#include <string.h>

using namespace std;

#define MAX 5

int TOP;
struct stack_s {
    int code;
    char desc[100];
};
stack_s STACK[MAX];

//stack initialization
void initStack()
{
    TOP = -1;
}

//check it is empty or not
int isEmpty()
{
    if (TOP == -1)
        return 1;
    else
        return 0;
}

//check stack is full or not
int isFull()
{
    if (TOP == MAX - 1)
        return 1;
    else
        return 0;
}

void push(int code, char d[])
{
    if (isFull()) {
        cout << "STACK is FULL." << endl;
        return;
    }
    ++TOP;
    STACK[TOP].code = code;
    strcpy(STACK[TOP].desc, d);
    cout << code << " has been inserted." << endl;
}

void display()
{
    int i;
    if (isEmpty()) {
        cout << "STACK is EMPTY." << endl;
        return;
    }
    for (i = TOP; i >= 0; i--) {
        cout << STACK[i].code << "," << STACK[i].desc << endl;
    }
    cout << endl;
}

//pop - to remove item
void pop()
{
    int temp;
    if (isEmpty()) {
        cout << "STACK is EMPTY." << endl;
        return;
    }

    temp = STACK[TOP].code;
    TOP--;
    cout << temp << " has been deleted." << endl;
}

// Main code
int main()
{
    int code;
    char desc[100];

    initStack();

    char ch;

    do {
        int a;
        cout << "Chosse \n1.push\n"
             << "2.pop\n"
             << "3.display\n";
        cout << "Please enter your choice: ";
        cin >> a;
        switch (a) {
        case 1:
            cout << "Enter a code: ";
            cin >> code;
            cout << "Enter description:";
            cin >> desc;
            push(code, desc);
            break;

        case 2:
            pop();
            break;

        case 3:
            display();
            break;

        default:
            cout << "An Invalid Choice!!!\n";
        }
        cout << "Do you want to continue ? ";
        cin >> ch;
    } while (ch == 'Y' || ch == 'y');
    
    return 0;
}

Output

    Chosse  
    1.push  
    2.pop
    3.display  
    Please enter your choice: 1  
    Enter a code: 123
    Enter description:SAMPLE1 
    123 has been inserted. 
    Do you want to continue ? y  
    Chosse  
    1.push  
    2.pop
    3.display  
    Please enter your choice: 1  
    Enter a code: 456
    Enter description:SAMPLE2 
    456 has been inserted.  
    Do you want to continue ? y  
    Chosse  
    1.push  
    2.pop
    3.display  
    Please enter your choice: 3  
    456,SAMPLE2
    123,SAMPLE1
  
    Do you want to continue ? y  
    Chosse  
    1.push  
    2.pop
    3.display  
    Please enter your choice: 2  
    456 has been deleted.  
    Do you want to continue ? y  
    Chosse  
    1.push  
    2.pop
    3.display  
    Please enter your choice: 3  
    123,SAMPLE1
  
    Do you want to continue ? n


Comments and Discussions!

Load comments ↻





Copyright © 2024 www.includehelp.com. All rights reserved.