Guest User

Untitled

a guest
Apr 23rd, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.98 KB | None | 0 0
  1. #include "stdafx.h"
  2. #include <string.h>
  3. #include <stdlib.h>
  4.  
  5. struct Student{
  6.  
  7.     char Ime[24];
  8.     char Prezime[24];
  9.     int b1, b2;
  10. };
  11.  
  12. typedef struct Student ElementType;
  13.  
  14. struct cv{
  15.  
  16.     ElementType element;
  17.     struct cv*lijevo;
  18.     struct cv*desno;
  19. };
  20. typedef struct cv cvor;
  21.  
  22. cvor *upis(cvor *glava, Student element){
  23.  
  24.     int smjer;
  25.     if(glava==NULL){
  26.  
  27.         glava = (cvor*) malloc(sizeof(cvor));
  28.         if(glava){
  29.            
  30.             glava->element.b1=element.b1;
  31.             glava->element.b2=element.b2;
  32.             strcpy(glava->element.Ime, element.Ime);
  33.             strcpy(glava->element.Prezime, element.Prezime);
  34.             glava->lijevo=glava->desno=NULL;
  35.         }
  36.         else printf("\nU memoriji nema mjesta za upisati '%s'\n", element);
  37.     }
  38.  
  39.     else {
  40.  
  41.         if((smjer=strcmp(glava->element.Prezime, element.Prezime))<0){
  42.        
  43.             glava->desno = upis(glava->desno, element);
  44.         }
  45.         else if((smjer=strcmp(glava->element.Prezime, element.Prezime))>0){
  46.    
  47.             glava->lijevo = upis (glava->lijevo, element);
  48.         }
  49.         else printf("\nPrezime postoji!");
  50.     }
  51.     return glava;
  52. }
  53.  
  54. void IspisIn(cvor *glava){
  55.  
  56.     if(glava!=NULL){
  57.         IspisIn(glava->lijevo);
  58.         printf("\n%s %s-> b1: %d; b2: %d", glava->element.Ime, glava->element.Prezime, glava->element.b1, glava->element.b2);
  59.         IspisIn(glava->desno);
  60.     }
  61. }
  62.  
  63. void IspisPred(cvor *glava){
  64.  
  65.     if(glava!=NULL){
  66.         printf("\n%s %s-> b1: %d; b2: %d", glava->element.Ime, glava->element.Prezime, glava->element.b1, glava->element.b2);
  67.     IspisIn(glava->lijevo);
  68.         IspisIn(glava->desno);
  69.     }
  70. }
  71.  
  72.  
  73. void IspisPos(cvor *glava){
  74.  
  75.     if(glava!=NULL){
  76.         IspisIn(glava->lijevo);
  77.         IspisIn(glava->desno);
  78.     printf("\n%s %s-> b1: %d; b2: %d", glava->element.Ime, glava->element.Prezime, glava->element.b1, glava->element.b2);
  79.     }
  80. }
  81.  
  82.  
  83. void main()
  84. {
  85.    
  86.     ElementType s1;
  87.     cvor *stablo;
  88.     int choice;
  89.     stablo = NULL;
  90.     do{
  91.    
  92.         printf("\n0 izlaz");
  93.         printf("\n11 dodaj u stablo");
  94.         printf("\n12 ispisi InOrder");
  95.     printf("\n13 ispisi PredOrder");
  96.     printf("\n14 ispisi PosOrder");
  97.         printf("\nchoice-> ");
  98.         scanf("%d", &choice);
  99.         switch(choice){
  100.        
  101.             case 11:
  102.                 printf("\nUpisi Ime clana: ");
  103.                 scanf("%s", s1.Ime);
  104.                 printf("\nUpisi Prezime clana: ");
  105.                 scanf("%s", s1.Prezime);
  106.                 printf("\nUpisite broj bodova na prvom blicu: ");
  107.                 scanf("%d", &s1.b1);
  108.                 printf("\nUpisite broj bodova na drugom blicu: ");
  109.                 scanf("%d", &s1.b2);
  110.                 stablo = upis(stablo, s1);
  111.                 break;
  112.             case 12:
  113.                 IspisIn(stablo);
  114.                 break;
  115.     case 13:
  116.         IspisPred(stablo);
  117.         break;
  118.     case 14:
  119.         IspisPos(stablo);
  120.         break;
  121.         }
  122.     }while(choice>0);
  123. }
Add Comment
Please, Sign In to add comment