write a program to reverse a string in stack using linked list in c code example
Example: reverse a singly linked list in c
/**
* C program to reverse a Singly Linked List
*/
#include
#include
/* Structure of a node */
struct node {
int data; //Data part
struct node *next; //Address part
}*head;
/* Functions used in the program */
void createList[int n];
void reverseList[];
void displayList[];
int main[]
{
int n, choice;
/*
* Create a singly linked list of n nodes
*/
printf["Enter the total number of nodes: "];
scanf["%d", &n];
createList[n];
printf["\nData in the list \n"];
displayList[];
/*
* Reverse the list
*/
printf["\nPress 1 to reverse the order of singly linked list\n"];
scanf["%d", &choice];
if[choice == 1]
{
reverseList[];
}
printf["\nData in the list\n"];
displayList[];
return 0;
}
/*
* Create a list of n nodes
*/
void createList[int n]
{
struct node *newNode, *temp;
int data, i;
if[n data = data; // Link the data field with data
head->next = NULL; // Link the address field to NULL
temp = head;
/*
* Create n nodes and adds to linked list
*/
for[i=2; idata = data; // Link the data field of newNode with data
newNode->next = NULL; // Link the address field of newNode with NULL
temp->next = newNode; // Link previous node i.e. temp to the newNode
temp = temp->next;
}
}
printf["SINGLY LINKED LIST CREATED SUCCESSFULLY\n"];
}
}
/*
* Reverse the order of nodes of a singly linked list
*/
void reverseList[]
{
struct node *prevNode, *curNode;
if[head != NULL]
{
prevNode = head;
curNode = head->next;
head = head->next;
prevNode->next = NULL; // Make first node as last node
while[head != NULL]
{
head = head->next;
curNode->next = prevNode;
prevNode = curNode;
curNode = head;
}
head = prevNode; // Make last node as head
printf["SUCCESSFULLY REVERSED LIST\n"];
}
}
/*
* Display entire list
*/
void displayList[]
{
struct node *temp;
/*
* If the list is empty i.e. head = NULL
*/
if[head == NULL]
{
printf["List is empty."];
}
else
{
temp = head;
while[temp != NULL]
{
printf["Data = %d\n", temp->data]; // Print the data of current node
temp = temp->next; // Move to next node
}
}
}
Video liên quan