Advertisement
Guest User

Untitled

a guest
Dec 18th, 2018
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.56 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. #include "tree.h"
  5. #define MAX 100
  6.  
  7. int checkAbr(Tree T,int * check,int i);
  8. int control_order (int * check,int dim, int res);
  9. int control_succ (int * check, int dim, int res);
  10.  
  11. int main(int argc, const char * argv[]) {
  12. srand((unsigned int)time(NULL));
  13. int n;
  14. do{
  15. printf("Quanti elementi da inserire?\n");
  16. }while(!getPositive(&n));
  17. Tree T = treeCreationMenu(n);
  18. inOrderPrint(T);
  19. int *check = (int*)malloc( n*sizeof (int));
  20. checkAbr(T,check,0);
  21. if (control_order(check,n,1)){
  22. printf ("\nL'albero binario e un ABR\n");
  23. if (control_succ(check,n,1)) printf ("\nOgni elemento dell' Abr ha il suo successore\n");
  24. else printf ("\nOgni elemento dell' Abr non ha il suo successore\n");
  25. }
  26. else printf ("\nL' albero binario non e un ABR\n");
  27. freeTree(T);free(check);
  28. return 0;
  29. }
  30.  
  31. int control_succ (int * check, int dim, int res){
  32. int i;
  33. for (i=0;i<dim-1 && res==1;i++){
  34. if (check[i]!=check[i+1]-1){
  35. res=0;
  36. }
  37. }
  38. return res;
  39. }
  40.  
  41. int checkAbr(Tree T, int *check, int i) {
  42. if (T != NULL) {
  43. i=checkAbr(T->sx,check,i);
  44. check[i]=T->info; i++;
  45. i=checkAbr(T->dx,check,i);
  46. }
  47. return i;
  48. }
  49.  
  50. int control_order (int * check,int dim, int res){
  51. int i,j,val;
  52. for (i=0;i<dim && res==1;i++){
  53. for (j=i+1;j<dim && res==1;j++){
  54. if (check[i]>check[j]){
  55. res=0;
  56. }
  57. }
  58. }
  59. return res;
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement