70 lines
1.5 KiB
C
70 lines
1.5 KiB
C
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
|
|
struct Node {
|
|
int data; // The data contained in this node
|
|
struct Node* prev; // A pointer to the previous node in the list
|
|
struct Node* next; // A pointer to the next node in the list
|
|
};
|
|
|
|
void display_traversal_forward(struct Node* node)
|
|
{
|
|
printf("Linked List: ");
|
|
|
|
// as linked list will end when Node is Null
|
|
while( node != NULL ){
|
|
printf("%d ",node -> data);
|
|
node = node -> next;
|
|
}
|
|
|
|
printf("\n");
|
|
}
|
|
|
|
void display_traversal_backward(struct Node* node)
|
|
{
|
|
printf("Linked List: ");
|
|
|
|
// as linked list will end when Node is Null
|
|
while( node != NULL ){
|
|
printf("%d ",node -> data);
|
|
node = node -> prev;
|
|
}
|
|
|
|
printf("\n");
|
|
}
|
|
|
|
int main() {
|
|
// Creating the Nodes
|
|
struct Node* first;
|
|
struct Node* second;
|
|
struct Node* third;
|
|
struct Node* fourth;
|
|
|
|
first = (struct Node*)malloc(sizeof(struct Node));
|
|
second = (struct Node*)malloc(sizeof(struct Node));
|
|
third = (struct Node*)malloc(sizeof(struct Node));
|
|
fourth = (struct Node*)malloc(sizeof(struct Node));
|
|
|
|
first -> data = 10;
|
|
second -> data = 20;
|
|
third -> data = 30;
|
|
fourth -> data = 40;
|
|
|
|
first -> next = second;
|
|
second -> next = third;
|
|
third -> next = fourth;
|
|
fourth -> next = NULL;
|
|
|
|
first -> prev = NULL;
|
|
second -> prev = first;
|
|
third -> prev = second;
|
|
fourth -> prev = third;
|
|
|
|
// Traversing the nodes
|
|
|
|
display_traversal_forward(first);
|
|
display_traversal_backward(fourth);
|
|
|
|
return 0;
|
|
}
|