Data Structures and Algorithms Lab Assessment 5
Data Structures and Algorithms Lab Assessment 5
1. You are given a pointer to the root of a binary search tree and values to be inserted into the tree.
Apply the insert, delete and display operation in the binary search tree.
#include <stdio.h>
#include <stdlib.h>
struct Node {
int data;
};
newNode->data = data;
return newNode;
if (root == NULL)
return createNode(data);
23BKT0031
GAUTAM KRISHNA KUMAR
return root;
current = current->left;
return current;
if (root == NULL)
return root;
else {
if (root->left == NULL) {
free(root);
return temp;
free(root);
return temp;
root->data = temp->data;
return root;
if (root != NULL) {
inorder(root->left);
inorder(root->right);
int main() {
// Inserting values
inorder(root);
printf("\n");
// Deleting a node
inorder(root);
printf("\n");
inorder(root);
printf("\n");
inorder(root);
printf("\n");
printf(“Gautam kk 23BKT0031”)
return 0;
23BKT0031
GAUTAM KRISHNA KUMAR
2. Write a C program to implement the following binary tree traversals using switch statement. a.
Inorder Traversal b. Preorder Traversal c. Postorder Traversal
#include <stdio.h>
#include <stdlib.h>
struct Node {
int data;
};
newNode->data = data;
return newNode;
if (root != NULL) {
inorderTraversal(root->left);
inorderTraversal(root->right);
if (root != NULL) {
preorderTraversal(root->left);
preorderTraversal(root->right);
if (root != NULL) {
postorderTraversal(root->left);
postorderTraversal(root->right);
int main() {
root = createNode(1);
root->left = createNode(2);
root->right = createNode(3);
root->left->left = createNode(4);
root->left->right = createNode(5);
root->right->left = createNode(6);
root->right->right = createNode(7);
int choice;
23BKT0031
GAUTAM KRISHNA KUMAR
scanf("%d", &choice);
switch (choice) {
case 1:
inorderTraversal(root);
break;
case 2:
preorderTraversal(root);
break;
case 3:
postorderTraversal(root);
break;
default:
printf("Invalid choice.\n");
break;
printf("\n");
printf(“Gautam kk”)
return 0;
}
23BKT0031
GAUTAM KRISHNA KUMAR
#include <stdio.h>
#include <stdlib.h>
int adjMatrix[MAX][MAX];
int visited[MAX];
int queue[MAX];
adjMatrix[u][v] = 1;
int i;
front = rear = 0;
queue[rear] = start;
visited[start] = 1;
queue[++rear] = i;
visited[i] = 1;
printf("\n");
visited[vertex] = 1;
dfs(i);
int main() {
scanf("%d", &n);
adjMatrix[i][j] = 0;
// Input edges
scanf("%d", &edges);
addEdge(u, v);
scanf("%d", &start);
printf("1. BFS\n");
printf("2. DFS\n");
scanf("%d", &choice);
switch (choice) {
case 1:
bfs(start);
break;
case 2:
dfs(start);
printf("\n");
break;
default:
printf("Invalid choice!\n");
break;
printf(“Gautam”)
return 0;