Advertisement
Guest User

Untitled

a guest
Mar 31st, 2020
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.31 KB | None | 0 0
  1. void robot_unload_packages(Truck* truck, Robot* robot){
  2. // TODO: 3.3
  3. if(robot -> size == 0)
  4. return;
  5. if(truck -> size == truck -> capacity)
  6. return;
  7. if(truck -> capacity == 0)
  8. return;
  9. char destination [100];
  10. strcpy(destination,truck -> destination);
  11. Manifest *p = robot -> manifest;
  12. while(truck -> size < truck -> capacity && p != NULL) {
  13. if(strcmp(destination, p -> package -> destination ) == 0) {
  14. Manifest *newnode = create_manifest_node();
  15. newnode -> package = p -> package;
  16. //acum scot pachetul din robot
  17.  
  18. if(p == robot -> manifest) {
  19. robot -> manifest = robot -> manifest -> next;
  20. robot -> manifest -> prev = NULL ;
  21.  
  22. }
  23. else if(p -> next == NULL) {
  24. p -> prev -> next = NULL;
  25. }
  26. else {
  27. p -> prev -> next = p -> next;
  28. p -> next -> prev = p -> prev;
  29. }
  30. robot -> size --;
  31.  
  32. if(truck -> manifest == NULL ) {
  33. newnode -> prev = NULL;
  34. newnode -> next = NULL;
  35. truck -> manifest = newnode;
  36. }
  37. Manifest *p1 = truck -> manifest;
  38. while(p1 -> next != NULL)
  39. p1 = p1 -> next;
  40.  
  41. newnode -> prev = p1;
  42. newnode -> next = NULL;
  43. p1 -> next = newnode;
  44. p1 -> prev = p1;
  45. truck -> size ++;
  46. Manifest *aux = p;
  47. p = p -> next;
  48. destroy_manifest_node(aux);
  49. }
  50. else
  51. p = p -> next;
  52. }
  53.  
  54. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement