#include int main () { // A list node: struct ListNode { char *name; // Fields: name and age. int age; struct ListNode *next; // The "next" pointer. }; struct ListNode *front; // Point to front of list. struct ListNode *rear; // To rear. struct ListNode *tempPtr; // For temporary use. // Create a first node: tempPtr = (struct ListNode *) malloc (sizeof(struct ListNode)); tempPtr->name = "Alice"; tempPtr->age = 19; tempPtr->next = NULL; // Add to list: front = rear = tempPtr; // Create a second node: tempPtr = (struct ListNode *) malloc (sizeof(struct ListNode)); tempPtr->name = "Bob"; tempPtr->age = 18; tempPtr->next = NULL; // Add to list. front->next = tempPtr; rear = tempPtr; // Print etc ... }