What is the output of the following code? void Foo(int x){ x…

What is the output of the following code? void Foo(int x){ x *= 2;}void Bar(int* y){ *y *= 3;}int main(){ int array[5] = {5, 10, 15, 20, 25}; Foo(array[0]); Foo(array[2]); Foo(array[4]);  Bar(&array[1]);  Bar(&array[3]); int sum = 0; for (int i = 0; i < 5; i++) sum += array[i]; cout

Given the following Node: struct Node{    int data;    Node*…

Given the following Node: struct Node{    int data;    Node* next;    Node* prev;    Node(int data) { this->data = data; next = nullptr; prev = nullptr;    };}; and code snippet: Node* n1 = new Node(1);Node* n2 = new Node(2);Node* n3 = new Node(3);n1->next = n2;n1->prev = n3;n2->next = n3;n2->prev = n1;n3->next = n1;n3->prev = n2;Node* current = n1;for(int i = 0; i < 4; i++){    cout data;    current = current->next;}for(int i = 0; i < 4; i++){    cout data;    current = current->prev;} What would be the output?