0% found this document useful (0 votes)
4 views3 pages

Doubly Linked List

Uploaded by

sahaabhi162
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views3 pages

Doubly Linked List

Uploaded by

sahaabhi162
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

1 #include<stdio.

h>
2 #include<stdlib.h>
3
4 struct Node
5 {
6 int Item;
7 Node *PLink;
8 Node *NLink;
9 };
10
11 void AddNode (Node **Head, int Val)
12 {
13 Node *Q = *Head, *temp;
14
15 if (*Head == NULL)
16 {
17 *Head = (Node *) malloc(sizeof(Node));
18 (*Head)->Item = Val;
19 (*Head)->PLink = NULL;
20 (*Head)->NLink = NULL;
21 }
22 else
23 {
24 while ( Q->NLink != NULL )
25 Q = Q->NLink;
26 temp = (Node *) malloc(sizeof(Node));
27 temp->Item = Val;
28 temp->PLink = Q;
29 temp->NLink = NULL;
30 Q->NLink = temp;
31 }
32 }
33
34 void Display(Node *Head)
35 {
36 printf("\nElements : ");
37 while(Head != NULL)
38 {
39 printf(" %d", Head->Item);
40 Head = Head->NLink;
41 }
42 }
43
44 int DeleteLastNode(Node **Head)
45 {
46 Node *Q = *Head;
47 int Val = -1;
48 if (*Head == NULL)
49 {
50 printf("\nList is Empty.... ");
51 }
52 else if ((*Head)->NLink == NULL)
53 {
54 printf("\nList has Single Node....It is
Successfully Removed ");
55 Val = (*Head)->Item;
56 *Head = NULL;
57 }
58 else
59 {
60 while ( Q->NLink->NLink != NULL)
61 Q = Q->NLink;
62 Val = Q->NLink->Item;
63 Q->NLink->PLink = NULL;
64 Q->NLink = NULL;
65 }
66 return Val;
67 }
68
69 void AddBegnning(Node **Head, int Val)
70 {
71 Node *temp;
72 if (*Head == NULL)
73 {
74 *Head = (Node *) malloc(sizeof(Node));
75 (*Head)->Item = Val;
76 (*Head)->PLink = NULL;
77 (*Head)->NLink = NULL;
78 }
79 else
80 {
81 temp = (Node *) malloc(sizeof(Node));
82 temp->Item = Val;
83 temp->PLink = NULL;
84 temp->NLink = *Head;
85 (*Head)->PLink = temp;
86 *Head = temp;
87 }
88 }
89 int main()
90 {
91 Node *DLList = NULL;
92 AddNode(&DLList, 10);
93 AddNode(&DLList, 20);
94 AddNode(&DLList, 30);
95 Display(DLList);
96 AddNode(&DLList, 40);
97 AddNode(&DLList, 50);
98 Display(DLList);
99 printf("\nDeleted Item = %d
",DeleteLastNode(&DLList) );
100 printf("\nDeleted Item = %d
",DeleteLastNode(&DLList) );
101 Display(DLList);
102 AddBegnning(&DLList, 100);
103 AddBegnning(&DLList, 200);
104 Display(DLList);
105
106 }
107

You might also like