File tree Expand file tree Collapse file tree 1 file changed +78
-0
lines changed Expand file tree Collapse file tree 1 file changed +78
-0
lines changed Original file line number Diff line number Diff line change 1+ #include <stdio.h>
2+ #include <stdlib.h>
3+ struct node
4+ {
5+ int data ;
6+ struct node * next ;
7+ } * temp , * head ;
8+
9+ void createDCLL (int ); // creating a list
10+ void display (); // displaying the lsit
11+ struct node * middleNode (struct node * ); // finding middle part and resturning middle node of linked list
12+ int main ()
13+ {
14+ int n ;
15+ printf ("enter the no of node" );
16+ scanf ("%d" , & n );
17+ createDCLL (n );
18+ head = middleNode (head ); // updating head of the linked list ( pointing it to middle node of linked list )
19+ display ();
20+ }
21+ void createDCLL (int n )
22+ {
23+ int i , num ;
24+ struct node * newnode ;
25+ if (n >= 1 )
26+ {
27+ head = (struct node * )malloc (sizeof (struct node ));
28+ if (head != NULL )
29+ {
30+ printf ("enter the data" );
31+ scanf ("%d" , & num );
32+ head -> data = num ;
33+ head -> next = NULL ;
34+ temp = head ;
35+ }
36+ for (i = 2 ; i <= n ; i ++ )
37+ {
38+ newnode = (struct node * )malloc (sizeof (struct node ));
39+ if (newnode != NULL )
40+ {
41+ printf ("enter the data" );
42+ scanf ("%d" , & num );
43+ newnode -> data = num ;
44+ temp -> next = newnode ;
45+ newnode -> next = NULL ;
46+ temp = newnode ;
47+ }
48+ }
49+ }
50+ }
51+ void display ()
52+ {
53+ temp = head ;
54+ while (temp != 0 )
55+ {
56+ printf ("%d\t" , temp -> data );
57+ temp = temp -> next ;
58+ }
59+ }
60+ struct node * middleNode (struct node * head )
61+ {
62+ int c = 0 , i = 0 ;
63+ struct node * current ;
64+ current = head ;
65+ while (current != NULL )
66+ {
67+ c ++ ; // c = length of linked list
68+ current = current -> next ;
69+ }
70+ c = c / 2 ;
71+ current = head ;
72+ while (i < c )
73+ {
74+ current = current -> next ;
75+ i ++ ;
76+ }
77+ return current ;
78+ }
You can’t perform that action at this time.
0 commit comments