public void ListTrucks() { for (TruckElem elem = _truckList; elem != null; elem = elem.Next) { Console.WriteLine(elem.Truck); } }
/* Remove the client from all trucks in the fleet. */ public void RemoveClient(String clientName) { for (TruckElem elem = _truckList; elem != null; elem = elem.Next) { elem.Truck.RemoveClient(clientName); } }
/* Remove the first matching truck from the fleet (should be the only one). * Return 0 on success and -1 otherwise. */ public int Remove(String numberplate) { TruckElem prevElem = null; for (TruckElem currentElem = _truckList; currentElem != null; currentElem = currentElem.Next) { if (currentElem.Truck.Numberplate == numberplate) // found a match { if (prevElem == null) // start of list { _truckList = currentElem.Next; } else // element in the list { prevElem.Next = currentElem.Next; } truckListLength -= 1; return(0); } prevElem = currentElem; } return(-1); // numberplate not found }
/* List all trucks which are assigned to the given client. */ public void ListTrucksOfClient(string client) { for (TruckElem elem = _truckList; elem != null; elem = elem.Next) { if (elem.Truck.HasClient(client)) { Console.WriteLine(elem.Truck); } } }
/* Return the first truck in the fleet with a matching numberplate (should be the only one). */ private Truck GetTruck(string numberplate) { for (TruckElem elem = _truckList; elem != null; elem = elem.Next) { if (elem.Truck.Numberplate == numberplate) { return(elem.Truck); } } return(null); }
public string[] ReturnTrucksNoClients() { string[] trucks = new string[truckListLength]; int i = 0; for (TruckElem elem = _truckList; elem != null; elem = elem.Next) { if (!elem.Truck.HasClients()) { trucks[i++] = elem.Truck.Numberplate; } } return(trucks); }
/* Insert a truck into the fleet sorted alphabetically. * Return 0 on success; * Return -1 if the truck is already in the fleet. */ public int Add(Truck t) { TruckElem prevElem = null; for (TruckElem currentElem = _truckList; currentElem != null; currentElem = currentElem.Next) { int comp = currentElem.Truck.Numberplate.CompareTo(t.Numberplate); if (comp == 0) // THe truck already is in the fleet { return(-1); } if (comp < 0) // The truck should be alphabetically first { if (prevElem != null) { prevElem.Next = new TruckElem(t, currentElem); } else { _truckList = new TruckElem(t, currentElem); // Insert at the start of the list } truckListLength += 1; return(0); // Success } prevElem = currentElem; } if (prevElem == null) { _truckList = new TruckElem(t, null); // Insert at the start of the list } else { prevElem.Next = new TruckElem(t, null); // Insert to the end of the list } truckListLength += 1; return(0); }
public TruckElem(Truck truck, TruckElem next) { Next = next; Truck = truck; }