dsa5
dsa5
#include <queue>
struct Node {
int data;
Node* left;
Node* right;
Node(int value) {
data = value;
left = NULL;
right = NULL;
};
struct ListNode {
int data;
ListNode* next;
ListNode(int value) {
data = value;
next = NULL;
};
if (!root) {
} else {
root->right = insert(root->right, value);
return root;
if (!root) {
return 0;
while (root->left) {
root = root->left;
return root->data;
if (!root) {
return;
swap(root->left, root->right);
swapChildren(root->left);
swapChildren(root->right);
if (!root) {
return;
}
queue<Node*> q;
q.push(root);
int level = 0;
while (!q.empty()) {
q.pop();
if (current->left) {
q.push(current->left);
if (current->right) {
q.push(current->right);
++level;
int currentValue = 0;
char c = input[i];
if (isdigit(c)) {
if (!inNumber) {
inNumber = true;
currentValue = c - '0';
} else {
} else if (inNumber) {
if (head == NULL) {
head = newNode;
tail = head;
} else {
tail->next = newNode;
tail = newNode;
inNumber = false;
if (inNumber) {
if (head == NULL) {
head = newNode;
tail = head;
} else {
tail->next = newNode;
}
return head;
if (!root) {
return;
nodes[*nodeCount] = root->data;
(*nodeCount)++;
if (nodes[i] == value) {
return true;
return false;
int main() {
string input;
char continueInput;
do {
cout << "Enter node values for the BST (separate by spaces or commas): ";
getline(cin, input);
ListNode* newNodes = parseInput(input);
if (nodeList == NULL) {
nodeList = newNodes;
} else {
temp = temp->next;
temp->next = newNodes;
nodeList = nodeList->next;
cout << "Do you want to continue entering nodes? (y/n): ";
cin.ignore();
levelOrder(root);
cout << "Height of the tree: " << height(root) << endl;
cout << "Minimum value in the tree: " << findMin(root) << endl;
swapChildren(root);
cout << "Level-order traversal after swapping left and right subtrees:" << endl;
levelOrder(root);
int searchValue;
cout << "Enter a value to search for: ";
cout << "Value " << searchValue << " found in the tree." << endl;
} else {
cout << "Value " << searchValue << " not found in the tree." << endl;
return 0;
OUTPUT: