You are on page 1of 8

SVEU ILI TE / UNIVERZITET VITEZ U TRAVNIKU FAKULTET POSLOVNE INFORMATIKE U TRAVNIKU TRAVNIK

Studij slu aja

Predmet: STRUKTURA PODATAKA I ALGORITAMA Mentor: Prof.dr.Lazo rolji Asistent: prof. Kenan Bradi Student: Midhet ulovi Broj indeksa: 0158-10/RPI Smjer: FPI

TRAVNIK.APRIL. 2011.

Tablica sadr aja


uvod ................................ ................................ ................................ ................................ .................. 1 zadatak ................................ ................................ ................................ ................................ .............. 2

uvod
Ovo je program koji prvo tra i da se unese integer broj i na taj na in uzastopnim ponavljanjem dobijemo nesortiran niz. A nakon toga taj niz se sortira u rastu em na inu tako da je najmanji broj 1 a najve i zadnji. Potom mo emo pozvati podprogram za pretragu tog niza i ako na e u nizu tra enu vrijednost ispi e broj je na en a ako ne na e taj broj ispi e taj broj nije na en. Tek kda pokrenemo ovaj program za soritinanje i pretragu niza pojavi se crni ekran sa rezultatom ovog programa. A na toj crnoj pozadini pi e: a pritisnuti za unos novog integer broja b.sortiranje liste niza u rastu em nizu c. pretraga niza u listi za odre enim brojem. d. izadji Nakon kad unesemo a pojavi se unesi broj i sad mo emo da unesemo element niza, kad pritisnemo enter pojavi se da li zelimo da unesemo novi brojm, ako da treba unijeti broj y ili n za prekid rada i prelaz na drugu funkciju.

I na ovaj na in uosimo elemente niza prema potrebi a kad nebude potrebno da unesemo nove elemente niza tad mo emo pre i na sljede i korak a to je sortiranje. A to mo emo uraditi tako to unesemo slovo b i tako dobijemo rezultat sortiran niz u rastu em nizu.

A ako je niz previ e duga ak a nama je potrebno da provijerimo da li se nalazi odre ena vrijednost u nizu tada emo unijeti slovo c. Sa unosom ovog slova pojavljuje se unesi broj za pretragu i kad se unese broj koji treba da provijerimo da li je u nizu, naravno mo emo samo imati 2 rezultala a to su : da taj tra eni broj nalazi u nizu ili da se taj broj ne nalazi u nizu. Tako mo emo manipulisati sa tim podatcima a kad nam vi e nije potreban ovaj program unesemo d i program se automatski prekida.

zadatak

#include <stdlib.h> #include <stdio.h> struct tree { int data; struct tree *left; struct tree *right; }*top,*a,*b; struct tree *make(int m) { struct tree *newnode; newnode=(struct tree *)malloc(sizeof(struct tree)); newnode->data=m; newnode->right=newnode->left=NULL; return(newnode); } void left(struct tree *t,int x) { if(t->left!=NULL) printf("\n nevazeci!"); else t->left=make(x); 2

} void right(struct tree *t,int x) { if(t->right!=NULL) printf("\n nevazeci"); else t->right=make(x); } void inorder(struct tree *t) { if(t!=NULL) { inorder(t->left); printf("\t %d",t->data); inorder(t->right); } } void locate(struct tree *t, int num) { if ( t==NULL ) printf("\n broj nije nadjen!"); else { if ( t->data==num ) { printf("\n --------------------------"); printf("\n broj je nadjen\n");

printf("\n --------------------------"); } else if ( t->data<num ) locate(t->right,num); else locate(t->left,num); } } int main(void) { int num, loc; char ans; char choice; do { printf("\na.dodajte integer broj u drvo \n"); printf("b. prekazi sortiranu listu integer brojeva u drvetu\n"); printf("c. pretraga da li integer broj postoji u listi\n"); printf("d. izadji\n"); scanf("%s", &choice); switch(choice) { case'a': printf("\n unesi broj: "); scanf("%d",& num); top=make(num); a=top;

do { printf("\n\n dodajte novi broj?(Y/N): "); scanf(" %c",&ans); if ( ans=='y' || ans=='Y' ) { printf("\n unesite broj: "); scanf("%d",&num); if ( num==-1 ) break; a=top; b=top; while ( num!=a->data && b!=NULL ) { a=b; if ( num<a->data ) b=a->left; else b=a->right; } if ( num<a->data ) { left(a,num); } else { right(a,num);

} } else { break; } } while ( ans=='y' || ans=='Y' ); case 'b': printf("\n\nsortirano stablo:\n "); inorder(top); break; case 'c': printf("\n\n unesite broj za pretragu: "); scanf("%d",&num); locate(top,num); break; case 'd': exit(0); break; } } while(choice>='a'&&choice<='d'); }

You might also like