DS Lab 7
DS Lab 7
DS Lab 7
#include <stdio.h>
#include <stdlib.h>
struct node
int a;
};
int main()
do
{
printf("\nEnter your choice:\n1. Insert\n2. Traverse via infix\n3.Traverse via prefix\n4. Traverse via
postfix\n5. Exit\nChoice: ");
scanf("%d", &choice);
switch(choice)
case 1:
scanf("%d", &num);
generate(&head, num);
break;
case 2:
infix(head);
break;
case 3:
prefix(head);
break;
case 4:
postfix(head);
break;
case 5:
delete(&head);
break;
if (*head == NULL)
(*head)->a = num;
else
prev = temp;
temp = temp->right;
else
prev = temp;
temp = temp->left;
temp->a = num;
prev->right = temp;
else
prev->left = temp;
if (head)
infix(head->left);
infix(head->right);
}
void prefix(struct node *head)
if (head)
prefix(head->left);
prefix(head->right);
if (head)
postfix(head->left);
postfix(head->right);
if (*head != NULL)
{
if ((*head)->left)
delete(&(*head)->left);
if ((*head)->right)
delete(&(*head)->right);
free(*head);
1. Insert
5. Exit
Choice: 1
1. Insert
2. Traverse via infix
5. Exit
Choice: 1
1. Insert
5. Exit
Choice: 2
2 4
1. Insert
5. Exit
Choice:
#include <stdlib.h>
struct node
int a;
};
int main()
do
scanf("%d", &choice);
switch(choice)
{
case 1:
scanf("%d", &num);
generate(&head, num);
break;
case 2:
scanf("%d", &key);
if (flag)
else
break;
case 3:
delete(&head);
break;
if (*head == NULL)
(*head)->a = num;
else
prev = temp;
temp = temp->right;
else
prev = temp;
temp = temp->left;
temp->a = num;
prev->right = temp;
else
prev->left = temp;
head = head->right;
head = head->left;
else
return 1;
return 0;
if (*head != NULL)
if ((*head)->left)
delete(&(*head)->left);
if ((*head)->right)
delete(&(*head)->right);
free(*head);
}
}
1. Insert
2. Search
3. Exit
Choice: 1
1. Insert
2. Search
3. Exit
Choice: 1
1. Insert
2. Search
3. Exit
Choice: 2
1. Insert
2. Search
3. Exit
Choice: