Skip to content

Instantly share code, notes, and snippets.

@czwen
Created September 23, 2020 12:17
Show Gist options
  • Save czwen/d107bc3c7fde7419ee85a1ec3dc43286 to your computer and use it in GitHub Desktop.
Save czwen/d107bc3c7fde7419ee85a1ec3dc43286 to your computer and use it in GitHub Desktop.
bst
#import <stdio.h>
#import <stdlib.h>
typedef struct node
{
int data;
struct node *left;
struct node *right;
} Node;
void preOrder(Node *node){
if (node==NULL)
{
return;
}
printf("%d\n", node->data);
preOrder(node->left);
preOrder(node->right);
}
void inOrder(Node *node){
if (node==NULL)
{
return;
}
inOrder(node->left);
printf("%d\n", node->data);
inOrder(node->right);
}
void postOrder(Node *node){
if (node==NULL)
{
return;
}
postOrder(node->left);
postOrder(node->right);
printf("%d\n", node->data);
}
void buildSearchTree(Node *node, int data){
if (data<node->data)
{
// left
if (node->left==NULL)
{
Node *left = malloc(sizeof(Node));
left->left=NULL;
left->right=NULL;
left->data = data;
node->left = left;
}else{
buildSearchTree(node->left, data);
}
}
else {
// right
if (node->right==NULL)
{
Node *right = malloc(sizeof(Node));
right->left=NULL;
right->right=NULL;
right->data = data;
node->right = right;
}else{
buildSearchTree(node->right, data);
}
}
}
int main(){
int arr[] = {1,3,2,4,6,5,7};
int n = 7;
Node node;
node.left=NULL;
node.right=NULL;
node.data = arr[0];
for (int i = 1; i < n; ++i)
{
buildSearchTree(&node, arr[i]);
}
postOrder(&node);
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment