Documente Academic
Documente Profesional
Documente Cultură
h>
#include <malloc.h>
struct Data{
int angka;
int height;
struct Data *left, *right;
};
y = x->left;
c = y->right;
//rotate
y->right = x;
x->left = c;
//update height
x->height = 1 + max( getHeight(x->left), getHeight(x->right) );
y->height = 1 + max( getHeight(y->left), getHeight(y->right) );
y = x->right;
c = y->left;
//rotate
y->left = x;
x->right = c;
//update height
x->height = 1 + max( getHeight(x->left), getHeight(x->right) );
y->height = 1 + max( getHeight(y->left), getHeight(y->right) );
return curr;
}
void clear(){
for(int i=1; i<=25; i++) putchar('\n');
}
return curr;
}
int main(){
Dt *root=NULL;
int angka, menu;
do{
clear();
printf("\npreorder : "); preorder(root);
printf("\ninorder : "); inorder(root);
printf("\npostorder: "); postorder(root);
printf("\n1. Add");
printf("\n2. Remove");
printf("\n3. Exit");
printf("\ninput menu: ");
scanf("%d", &menu); getchar();
if( menu == 1 ){
printf("\ninput angka: ");
scanf("%d", &angka); getchar();
root = add(root, angka);
}
else if( menu == 2 ){
printf("\ninput angka: ");
scanf("%d", &angka); getchar();
root = remove(root, angka);
}
else if( menu == 3 ){
removeAll(root);
root = NULL;
}
}while(menu != 3);
return 0;
}