int main(int argc, char *argv[]) { /* printf("Argument count: %d\n", argc); for (int i = 0; i < argc; i++) { printf("Argument vector values:%s at %p memory\n", argv[i], argv[i]); for (char *j=argv[i]; *j!='\0'; j++) { printf("Another way to print argument vector values: " "%c at %p memory\n", *j, j); } } */ //int num[MAX_LEN] = {1,2,3,4,5,6,7,8,9,10}; char *str; enqueue("Dog1"); enqueue("Cat1"); enqueue("Cat2"); enqueue("Dog2"); enqueue("Cat3"); enqueue("Dog4"); enqueue("Cat4"); iterateNodes(head); //printf("Dequeue any animal: %s\n",dequeueAny(str)); printf("Dequeue any: %s\n",dequeueAny(str)); iterateNodes(head); printf("Dequeue cat: %s\n",dequeueCat(str)); iterateNodes(head); printf("Dequeue dog: %s\n",dequeueDog(str)); iterateNodes(head); printf("Dequeue dog: %s\n",dequeueDog(str)); iterateNodes(head); enqueue("Dog5"); iterateNodes(head); printf("Dequeue any: %s\n",dequeueAny(str)); iterateNodes(head); enqueue("Cat5"); iterateNodes(head); printf("Dequeue cat: %s\n",dequeueCat(str)); iterateNodes(head); printf("\nFreeing Linked List:\n"); struct node *temp; while (head != NULL) { printf("Animal: %s, Address: %p, Next Address: %p\n",head->animal,head,head->next); temp = head; head = head->next; free(temp); } return 0; }
Node * dequeueAny() { if (catQ.head && dogQ.head) { if (catQ.head->p.timeEntered < dogQ.head->p.timeEntered) { return dequeueCat(); } else { return dequeueDog(); } } else if (!catQ.head && !dogQ.head) { return nullptr; } if (catQ.head) { return dequeueCat(); } return dequeueDog(); }