binary tree_ exercise
C
#include <stdio.h>
#include <stdlib.h>
typedef struct Node *treePointer;
typedef struct Data {
int key;
} Data;
typedef struct Node {
Data data;
treePointer left;
treePointer right;
} Node;
treePointer createNode(int key) {
treePointer node = (treePointer)malloc(sizeof(Node));
node->data.key = key;
node->left = NULL;
node->right = NULL;
return node;
}
treePointer insert(treePointer *root, int key) {
if (*root == NULL)
*root = createNode(key);
else if (key < (*root)->data.key)
(*root)->left = insert(&(*root)->left, key);
else if (key > (*root)->data.key)
(*root)->right = insert(&(*root)->right, key);
return *root;
}
treePointer deleteNode (treePointer root, int key) {
if (root == NULL) return NULL;
else if (key < root->data.key)
root -> left_child = deleteNode(root ->left_child, key);
else if (key > root ->data.key) {
root -> right_child = deleteNode (root -> right_child, key);
else {
if (root -> left_child == NULL && root -> right_child == NULL)
root = NULL;
else if (root ->left_child == NULL)
root = root -> right_child;
else if (root -> right_child == NULL)
root = root -> left_child;
else {
treePointer tempNode = findMinimum(current->right_child);
currentNode -> data.key = tempNode -> data.key;
currentNode -> right_child = deleteNode(currentNode -> right_child, tempNode->data.key);
}
}
return currentNode;
}
int main(){
int data, cnt = 5;
treePointer root = NULL;
while (cnt > 0) {
scanf("%d", &data);
root = insert(&root,data);
cnt--;
}
while(cnt < 5){
printf("%d", root->data.key);
root = root->left;
cnt++;
}
}
Output
Embed on website
To embed this program on your website, copy the following code and paste it into your website's HTML:
Comments
This comment belongs to a banned user and is only visible to admins.
This comment belongs to a deleted user and is only visible to admins.