Change this cpp code to C language #include using namespace std; /* Link list node */ struct Node { int data; struct Node* next; Node(int data) { this->data = data; next = NULL; } }; /*This Function takes head of Linked list as parameter */ /* and reverses the linked list by using an iterative approach*/ Node* reverse_iter(Node* head) { // Initializing the current,next and previous pointers Node* current = head; Node *prev = NULL, *next = NULL; while (current != NULL) { // Storing the next pointer next = current->next; // Reverse the current node's pointer current->next = prev; // Moving the pointers one position ahead. prev = current; current = next; } head = prev; return head; }   /*This Function takes head of Linked list as parameter */ /* and reverses the linked list by using an recursive approach*/ Node* reverse_rec(Node* head) { //If there is no element or only one element in the list then simply return head. if (head == NULL || head->next == NULL) return head; /* Calling the same function recursively which reverses the rest list and put the first element at the end */ Node* rest = reverse_rec(head->next); head->next->next = head; head->next = NULL; /* This fixes the head pointer in every recursive call*/ return rest; } /* This Function prints the linked list */ void print(Node* head) { struct Node* temp = head; while (temp != NULL) { cout << temp->data << " "; temp = temp->next; } } /* This Function inserts the data into Linked list */ Node* push(Node* head, int data) { Node* temp = new Node(data); temp->next = head; head = temp; return head; } int main() { Node* head = NULL, *newhead, *updatedhead; /* Start with the empty list */ newhead = push(head, 10); newhead = push(newhead, 20); newhead = push(newhead, 30); newhead = push(newhead, 40); newhead = push(newhead, 50); newhead = push(newhead, 60); cout << "Given linked list\n"; print(newhead); updatedhead = reverse_iter(newhead); cout << "\n\nReversed Linked list using Iterative Approach \n"; print(updatedhead);   head = NULL; /* Start with the empty list */ newhead = push(head, 10); newhead = push(newhead, 20); newhead = push(newhead, 30); newhead = push(newhead, 40); newhead = push(newhead, 50); newhead = push(newhead, 60); updatedhead = reverse_rec(newhead); cout << "\n\nReversed Linked list using Recursive Approach \n"; print(updatedhead); return 0; }

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question

Change this cpp code to C language

#include <iostream>
using namespace std;

/* Link list node */
struct Node {
int data;
struct Node* next;
Node(int data)
{
this->data = data;
next = NULL;
}
};


/*This Function takes head of Linked list as parameter */
/* and reverses the linked list by using an iterative approach*/

Node* reverse_iter(Node* head)
{
// Initializing the current,next and previous pointers
Node* current = head;
Node *prev = NULL, *next = NULL;

while (current != NULL) {
// Storing the next pointer
next = current->next;

// Reverse the current node's pointer
current->next = prev;

// Moving the pointers one position ahead.
prev = current;
current = next;
}

head = prev;
return head;

}

 

/*This Function takes head of Linked list as parameter */
/* and reverses the linked list by using an recursive approach*/

Node* reverse_rec(Node* head)
{
//If there is no element or only one element in the list then simply return head.
if (head == NULL || head->next == NULL)
return head;

/* Calling the same function recursively which reverses the rest list and put the first element at the end */
Node* rest = reverse_rec(head->next);
head->next->next = head;
head->next = NULL;

/* This fixes the head pointer in every recursive call*/
return rest;
}


/* This Function prints the linked list */
void print(Node* head)
{

struct Node* temp = head;
while (temp != NULL) {
cout << temp->data << " ";
temp = temp->next;
}

}


/* This Function inserts the data into Linked list */
Node* push(Node* head, int data)
{
Node* temp = new Node(data);
temp->next = head;
head = temp;
return head;
}


int main()
{

Node* head = NULL, *newhead, *updatedhead;

/* Start with the empty list */
newhead = push(head, 10);
newhead = push(newhead, 20);
newhead = push(newhead, 30);
newhead = push(newhead, 40);
newhead = push(newhead, 50);
newhead = push(newhead, 60);

cout << "Given linked list\n";
print(newhead);

updatedhead = reverse_iter(newhead);
cout << "\n\nReversed Linked list using Iterative Approach \n";
print(updatedhead);

 

head = NULL;
/* Start with the empty list */
newhead = push(head, 10);
newhead = push(newhead, 20);
newhead = push(newhead, 30);
newhead = push(newhead, 40);
newhead = push(newhead, 50);
newhead = push(newhead, 60);

updatedhead = reverse_rec(newhead);
cout << "\n\nReversed Linked list using Recursive Approach \n";
print(updatedhead);

return 0;

}

Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 3 steps with 1 images

Blurred answer
Knowledge Booster
Linked List Representation
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education