queue using linked list

 avatar
user_9350232
plain_text
9 months ago
1.3 kB
8
Indexable
#include <iostream>
using namespace std;

struct Node {
    int data;
    Node* next;
};

class Queue {
    Node* front;
    Node* rear;
public:
    Queue() { front = rear = NULL; }

    void enqueue(int val) {
        Node* newNode = new Node();
        newNode->data = val;
        newNode->next = NULL;
        if (rear == NULL) {
            front = rear = newNode;
        } else {
            rear->next = newNode;
            rear = newNode;
        }
        cout << val << " enqueued.\n";
    }

    void dequeue() {
        if (front == NULL)
            cout << "Queue Underflow!\n";
        else {
            cout << front->data << " dequeued.\n";
            Node* temp = front;
            front = front->next;
            if (front == NULL) rear = NULL;
            delete temp;
        }
    }

    void display() {
        cout << "Queue: ";
        Node* temp = front;
        while (temp != NULL) {
            cout << temp->data << " ";
            temp = temp->next;
        }
        cout << endl;
    }
};

int main() {
    Queue q;
    q.enqueue(5);
    q.enqueue(15);
    q.display();
    q.dequeue();
    q.display();

    cout << "\nTime Complexity: O(1)\nSpace Complexity: O(n)\n";
    return 0;
}
Editor is loading...
Leave a Comment