#include <iostream>
using namespace std;

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

void print_data(struct node* head) {
    if (head == NULL) {
        cout << "Linked list is empty." << endl;
        return; // Return early if the list is empty
    }
    
    struct node* ptr = head; // Initialize the pointer to head
    while (ptr != NULL) {
        cout << ptr->data << " ";
        ptr = ptr->next; // Move to the next node
    }
    cout << endl; // Print a newline at the end
}

int main() {
    // Create the head node
    node* head = new node;
    head->data = 10;
    head->next = NULL;
   // cout << "1st node is " << head->data << endl;

    // Create the second node
    node* second = new node;
    second->data = 45;
    second->next = NULL;
    head->next = second;
   // cout << "2nd node is " << second->data << endl;

    // Create the third node
    node* third = new node;
    third->data = 30;
    third->next = NULL;
    head->next->next = third; // Link second to third
   // cout << "3rd node is " << third->data << endl;

    // Print the linked list
    cout << "Linked list: ";
    print_data(head);

    // Clean up allocated memory
    delete third; // Delete in reverse order
    delete second;
    delete head;

    return 0;
}