Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- #include "tree.h"
- #define MAX 100
- int checkAbr(Tree T,int * check,int i);
- int control_order (int * check,int dim, int res);
- int control_succ (int * check, int dim, int res);
- int main(int argc, const char * argv[]) {
- srand((unsigned int)time(NULL));
- int n;
- do{
- printf("Quanti elementi da inserire?\n");
- }while(!getPositive(&n));
- Tree T = treeCreationMenu(n);
- inOrderPrint(T);
- int *check = (int*)malloc( n*sizeof (int));
- checkAbr(T,check,0);
- if (control_order(check,n,1)){
- printf ("\nL'albero binario e un ABR\n");
- if (control_succ(check,n,1)) printf ("\nOgni elemento dell' Abr ha il suo successore\n");
- else printf ("\nOgni elemento dell' Abr non ha il suo successore\n");
- }
- else printf ("\nL' albero binario non e un ABR\n");
- freeTree(T);free(check);
- return 0;
- }
- int control_succ (int * check, int dim, int res){
- int i;
- for (i=0;i<dim-1 && res==1;i++){
- if (check[i]!=check[i+1]-1){
- res=0;
- }
- }
- return res;
- }
- int checkAbr(Tree T, int *check, int i) {
- if (T != NULL) {
- i=checkAbr(T->sx,check,i);
- check[i]=T->info; i++;
- i=checkAbr(T->dx,check,i);
- }
- return i;
- }
- int control_order (int * check,int dim, int res){
- int i,j,val;
- for (i=0;i<dim && res==1;i++){
- for (j=i+1;j<dim && res==1;j++){
- if (check[i]>check[j]){
- res=0;
- }
- }
- }
- return res;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement