>>670
nodeType* search(keyType a_key) {
  nodeType* p = head;
  while (p != NULL) {
    if (p->data.key == a_key) break;
    p = p->next;
  }
  return p;
}

int insert(dataType *dp) {
  nodeType* node;
  if ((node = (nodeType*)malloc(sizeof(nodeType))) == NULL) return 0;
  node->data = *dp;
  node->next = NULL;
  if (head == NULL) {
    head = node;
  } else {
    nodeType* p = head;
    while (p->next != NULL) p = p->next;
    p->next = node;
  }
  return 1;
}