Home »
C/C++ Data Structure Programs
Find the largest node in doubly linked list using C program
In this tutorial, we will learn how to find the largest node in Doubly linked list using C program?
By Piyas Mukherjee Last updated : August 02, 2023
Input
A doubly linked list whose address of the first node is stored in a pointer say head
Output
The largest no of the linked list say max.
Data Structure Used
A doubly linked list where each node contains a data part, say data and two link parts say prev (to store the address of immediate previous node) and say next (to store the address of immediate next node).
Pseudo Code
Begin
temp=head
max=temp->data //max to store maximum
while(temp!=NULL)
begin
if(temp->data>max)
max=temp->data
temp=temp->next
end if
end while
End
C program to find the largest node in doubly linked list
#include <stdio.h>
#include <stdlib.h>
typedef struct list {
int data;
struct list* next;
struct list* prev;
} node;
void display(node* temp)
{
printf("The list is as follows :\n");
while (temp != NULL) {
printf("%d->", temp->data);
temp = temp->next;
}
printf("NULL");
return;
}
// Main Code
int main()
{
node *head = NULL, *temp, *temp1;
int choice, max;
//Taking the linked list as input
do {
temp = (node*)malloc(sizeof(node));
if (temp != NULL) {
printf("\nEnter the element in the list : ");
scanf("%d", &temp->data);
temp->next = NULL;
if (head == NULL) {
temp->prev = head;
temp->next = head;
head = temp;
}
else {
temp1 = head;
while (temp1->next != NULL) {
temp1 = temp1->next;
}
temp1->next = temp;
temp->prev = temp1;
}
}
else {
printf("\nMemory not avilable...node allocation is not possible");
}
printf("\nIf you wish to add more data on the list enter 1 : ");
scanf("%d", &choice);
} while (choice == 1);
display(head);
//finding max
temp = head;
max = temp->data;
while (temp != NULL) {
if (temp->data > max)
max = temp->data;
temp = temp->next;
}
printf("\nThe largest element in the list is : %d", max);
return 0;
}
Output
Enter the element in the list : 1
If you wish to add more data on the list enter 1 : 1
Enter the element in the list : 2
If you wish to add more data on the list enter 1 : 1
Enter the element in the list : -3
If you wish to add more data on the list enter 1 : 1
Enter the element in the list : 56
If you wish to add more data on the list enter 1 : 0
The list is as follows :
1->2->-3->56->NULL
The largest element in the list is : 56