Programming: C++ Program to Implement Stack Using Linked List

This C++ program, using iteration, implements the list of elements removed from the stack in last in first out mode using a linked list. A linked list is an ordered set of data elements, each containing a link to its successor.


Here is the source code of the C++ program to display the list of elements removed from the stack. The C++ program is successfully compiled and run on DevCpp, a C++ compiler. The program output is also shown below.

*
 * C++ Program to Implement Queue using Linked List
 */
#include < iostream >
#include < stdio.h >
#include < conio.h >
using namespace std;
struct node
{
    int data;
    node *next;
}*front = NULL, *rear = NULL, *p = NULL, *np = NULL;
void push(int x)
{
    np = new node;
    np->data = x;
    np->next = NULL;
    if(front == NULL)
    {
        front = rear = np;
        rear->next = NULL;
    }
    else
    {
        rear->next = np;
        rear = np;
        rear->next = NULL;
    }
}
int remove()
{
    int x;
    if (front == NULL)
    {
        cout << "empty queue\n";
    }
    else
    {
        p = front;
        x = p->data;
        front = front->next;
        delete(p);
        return(x);
    }
}
int main()
{
    int n, c = 0, x;
    cout << "Enter the number of values to be pushed into queue\n";
    cin >> n;
    while (c < n)
    {
 cout << "Enter the value to be entered into queue\n";
 cin >> x;
        push(x);
        c++;
    }
    cout << "\n\nRemoved Values\n\n";
    while(true)
    {
        if (front != NULL)
            cout << remove() << endl;
 else
     break;
    }
    getch();
}

Here is the output of the program:
Output
Enter the number of values to be pushed into queue
6
Enter the value to be entered into queue
5
Enter the value to be entered into queue
4
Enter the value to be entered into queue
3
Enter the value to be entered into queue
2
Enter the value to be entered into queue
1
Enter the value to be entered into queue
0
 
Removed Values
 
5
4
3
2
1
0

2 comments: Leave Your Comments

  1. No. It is not a stack. It is last-in-first-out only

    ReplyDelete
    Replies
    1. I would like to understand more about what is stack then... As per my understandings Stack is a abstract data structure which is serves as a collection of data in LIFO manner.. Also supporting two operations PUSH and POP.. I believe that's what I have implemented in the program.. Please provide more information about how stack is any different that last-in-first-out data structure..

      Delete

+