int maxSales(BinTree* root) { if (root == NULL) { return 0; } else { int salesLeft = maxSales(root->left); int salesRight = maxSales(root->right); return fmax(fmax(root->value, salesLeft), salesRight); } }
int main() { BinTree manolo = {"Manolo", 24, NULL, NULL}; BinTree aldrin = {"Aldrin", 27, NULL, NULL}; BinTree ruffa = {"Ruffa", 10, NULL, NULL}; BinTree winna = {"Winna", 48, NULL}; BinTree tim = {"Tim", 9, &manolo, &aldrin}; BinTree aiden = {"Aiden", 40, &ruffa, &winna}; BinTree kurt = {"Kurt", 3, &tim, &aiden}; // printf("%d\n", count(&kurt)); // printf("%d\n", max(2, 3)); // printf("%d\n", max(3, 4)); printf("%d\n", maxSales(&kurt)); // printf("%d\n", numLevels(&kurt)); // printf("%d\n", totalSales(&kurt)); }
int main() { countdown(10); countdownEven(10); printf("%s %s a palindrome\n", "MADAM", isPalindrome("MADAM", strlen("MADAM")) ? "is" : "is not"); LinkedList a = {3, NULL}; LinkedList b = {-4, &a}; LinkedList c = {2, &b}; LinkedList d = {1, &c}; printf("Sum: %d\n", sum(&d)); printf("isAllPositive: %d\n", isAllPositive(&d)); printf( isAllPositiveLessReadableButShorterWithALongerFunctionName(&d) ? "All positive!\n" : "Not all positive!\n"); printList(&d); printf("\n"); printListReverse(&d); printf("\n"); //1 -> 2 -> -4 -> 3 -> //3 -> -4 -> 2 -> 1 -> // BinTree* bt1 = NULL; // BinTree bt = NULL; // can't assign NULL to struct BinTree jean = {"Jean", 24, NULL, NULL}; BinTree jeane = {"Jeane", 27, NULL, NULL}; BinTree icel = {"Icel", 10, NULL, NULL}; BinTree candace = {"Candace", 48, &jean, &jeane}; BinTree lovely = {"Lovely", 9, &icel, NULL}; BinTree honey = {"Honey", 40, &lovely, NULL}; BinTree jj = {"JJ", 3, &honey, &candace}; printf("Population: %d\n", pop(&jj)); printf("Max sales: %d\n", maxSales(&jj)); printf("Num levels: %d\n", numLevels(&jj)); return 0; }