struct A { int a; struct A *next; }; struct B { int b; struct B *next; }; struct C { int c; struct C *next; }; struct D { A *a; B *b; C *c; struct D *next; };