Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdafx.h"
- #include <string.h>
- #include <stdlib.h>
- struct Student{
- char Ime[24];
- char Prezime[24];
- int b1, b2;
- };
- typedef struct Student ElementType;
- struct cv{
- ElementType element;
- struct cv*lijevo;
- struct cv*desno;
- };
- typedef struct cv cvor;
- cvor *upis(cvor *glava, Student element){
- int smjer;
- if(glava==NULL){
- glava = (cvor*) malloc(sizeof(cvor));
- if(glava){
- glava->element.b1=element.b1;
- glava->element.b2=element.b2;
- strcpy(glava->element.Ime, element.Ime);
- strcpy(glava->element.Prezime, element.Prezime);
- glava->lijevo=glava->desno=NULL;
- }
- else printf("\nU memoriji nema mjesta za upisati '%s'\n", element);
- }
- else {
- if((smjer=strcmp(glava->element.Prezime, element.Prezime))<0){
- glava->desno = upis(glava->desno, element);
- }
- else if((smjer=strcmp(glava->element.Prezime, element.Prezime))>0){
- glava->lijevo = upis (glava->lijevo, element);
- }
- else printf("\nPrezime postoji!");
- }
- return glava;
- }
- void IspisIn(cvor *glava){
- if(glava!=NULL){
- IspisIn(glava->lijevo);
- printf("\n%s %s-> b1: %d; b2: %d", glava->element.Ime, glava->element.Prezime, glava->element.b1, glava->element.b2);
- IspisIn(glava->desno);
- }
- }
- void IspisPred(cvor *glava){
- if(glava!=NULL){
- printf("\n%s %s-> b1: %d; b2: %d", glava->element.Ime, glava->element.Prezime, glava->element.b1, glava->element.b2);
- IspisIn(glava->lijevo);
- IspisIn(glava->desno);
- }
- }
- void IspisPos(cvor *glava){
- if(glava!=NULL){
- IspisIn(glava->lijevo);
- IspisIn(glava->desno);
- printf("\n%s %s-> b1: %d; b2: %d", glava->element.Ime, glava->element.Prezime, glava->element.b1, glava->element.b2);
- }
- }
- void main()
- {
- ElementType s1;
- cvor *stablo;
- int choice;
- stablo = NULL;
- do{
- printf("\n0 izlaz");
- printf("\n11 dodaj u stablo");
- printf("\n12 ispisi InOrder");
- printf("\n13 ispisi PredOrder");
- printf("\n14 ispisi PosOrder");
- printf("\nchoice-> ");
- scanf("%d", &choice);
- switch(choice){
- case 11:
- printf("\nUpisi Ime clana: ");
- scanf("%s", s1.Ime);
- printf("\nUpisi Prezime clana: ");
- scanf("%s", s1.Prezime);
- printf("\nUpisite broj bodova na prvom blicu: ");
- scanf("%d", &s1.b1);
- printf("\nUpisite broj bodova na drugom blicu: ");
- scanf("%d", &s1.b2);
- stablo = upis(stablo, s1);
- break;
- case 12:
- IspisIn(stablo);
- break;
- case 13:
- IspisPred(stablo);
- break;
- case 14:
- IspisPos(stablo);
- break;
- }
- }while(choice>0);
- }
Add Comment
Please, Sign In to add comment