int insertLast(Node *root, int val)

{

Node *node = (Node *)malloc(sizeof(Node));

if (node == NULL) return 0;

node->value = val;

/* For a previously empty list */

if (root->fwd == NULL)

{

root->fwd = node;

root->bwd = node;

node->fwd = NULL;

node->bwd = NULL;

}

/* For a list with at least one node */

else

{

root->bwd->fwd = node;

node->bwd = root->bwd;


root->bwd = node;

node->fwd = NULL;

}

return 1;

}