#include <stdio.h> #include <stdlib.h> struct Node { int data; struct Node* left; struct Node* right; }; struct Node* createNode(int value) { struct Node* newNode = (struct Node*)malloc(sizeof(struct Node)); newNode->data = value; newNode->left = newNode->right = NULL; return newNode; } struct Node* insertNode(struct Node* root, int value) { if (root == NULL) { return createNode(value); } if (value < root->data) { root->left = insertNode(root->left, value); } else if (value > root->data) { root->right = insertNode(root->right, value); } return root; } int findMin(struct Node* root) { if (root == NULL) { printf("Error: Tree is empty\n"); return -1; } while (root->left != NULL) { root = root->left; } return root->data; } int findMax(struct Node* root) { if (root == NULL) { printf("Error: Tree is empty\n"); return -1; } while (root->right != NULL) { root = root->right; } return root->data; } void freeTree(struct Node* root) { if (root == NULL) { return; } freeTree(root->left); freeTree(root->right); free(root); } int main() { struct Node* root = NULL; int numNodes; int value; printf("Enter the number of nodes in the binary search tree: "); scanf("%d", &numNodes); printf("Enter the values of the nodes:\n"); for (int i = 0; i < numNodes; i++) { scanf("%d", &value); root = insertNode(root, value); } int minVal = findMin(root); int maxVal = findMax(root); printf("Minimum value: %d\n", minVal); printf("Maximum value: %d\n", maxVal); freeTree(root); return 0; }
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter