// file: tr_ll_remove_1.cc
//

// isip include files
//
#include "train_link_list.h"
#include "train_link_list_constants.h"

// method: remove_cc
//
// arguments:
//  void_p item : (input) an item to remove from the list
//
// return: a logical_1 to indicate success
//
// this method removes the specified item from the linked list
//
logical_1 Train_Link_list::remove_cc(void_p item_a) {

  // find the node containing this item
  //
  Train_Link_node* node = (Train_Link_node*)NULL;
  for (node = head_d; node != (Train_Link_node*)NULL; node = node->get_next_cc()) {
    if (node->get_item_cc() == item_a) {
      break;
    }
  }
  
  // remove the specified node from the list and exit gracefully
  //
  return remove_cc(node);
}
