Need a unique gift idea?
A Pastebin account makes a great Christmas gift
SHARE
TWEET

Untitled

a guest Sep 18th, 2018 60 in 92 days
Upgrade to PRO!
ENDING IN00days00hours00mins00secs
 
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include "stabla.h"
  4. /*5. Napisati funkciju int f5(cvor* stablo) koja u
  5. datom stablu određuje broj onih elemenata kod kojih
  6. je zbir cifara svih elemenata levog podstabla strogo ve´ci od
  7. zbira cifara svih elemenata desnog podstabla.
  8. Testirati funkciju pozivom u main-u. Stablo se unosi
  9.  sa standardnog ulaza sve dok se ne unese 0.
  10. Elementi stabla su celi pozitivni brojevi*/
  11. int zbir_cifara(Cvor* koren){
  12.   if (koren==NULL)
  13.     return 0;
  14.   int x=abs(koren->vrednost);
  15.   int ret=0;
  16.   while (x!=0){
  17.     ret+=x%10;
  18.     x/=10;
  19.   }
  20.   return ret;
  21. }
  22. int zbir_podstabla(Cvor* koren,int i){
  23.   if (koren==NULL)
  24.     return 0;
  25.   return i+zbir_podstabla(koren->levo,zbir_cifara(koren->levo))+zbir_podstabla(koren->desno,zbir_cifara(koren->desno));
  26. }
  27. int l_veci_od_d(Cvor* koren){
  28.   if (koren==NULL)
  29.     return 0;
  30.     if (koren->levo && koren->desno){
  31.       if (zbir_podstabla(koren->levo,0)==0 && zbir_podstabla(koren->desno,0)==0)
  32.         return zbir_cifara(koren->levo)>zbir_cifara(koren->desno);
  33.       return zbir_podstabla(koren->levo,0) > zbir_podstabla(koren->desno,0);
  34.  
  35.     }
  36.     else if (koren->levo && !koren->desno)
  37.       return 1;
  38.     else if (koren->desno && !koren->levo)
  39.       return 0;
  40.     else
  41.       return 0;
  42. }
  43. int f5 (Cvor* koren){
  44.   if (koren==NULL)
  45.     return 0;
  46.     printf("f5: %i\n",l_veci_od_d(koren));
  47.   return l_veci_od_d(koren)+f5(koren->desno)+f5(koren->levo);
  48. }
  49. int main(){
  50.   Cvor* koren=NULL;
  51.   ucitaj_stablo(&koren,stdin);
  52.   Cvor* k1=napravi_cvor(105);
  53.   //ovde su mi neke proverice, zanemari ih
  54.   printf("zc:%i\n",zbir_cifara(k1));
  55.   printf("zbir levo: %i\n",zbir_podstabla(koren->desno->levo,0));
  56.   printf("kraj:%i\n",f5(koren));
  57.  
  58.   oslobodi_stablo(koren);
  59.   return 0;
  60. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top