/ Published in: C++
Ovo je biblioteka u kojoj se nalaze funkcije vezane uz implementaciju funkcija stabla pomoću pokazivaÄa, a koje se koriste u programu glavni_program. Funkcije su: InitB (inicijalizira stablo s korijenom), RootB (vraća korijen), ChangeLabelB(mijenja oznaku nekog Ävora u stablu), ParentB(vraća roditelja nekog Ävora), LeftChildB(vraća lijevo dijete nekog Ävora), RightChildB(vraća desno dijete nekog Ävora), LabelB(vraća vrijednost Ävora), CreateLeftB(dodaje lijevo dijete nekom Ävoru), CreateRightB(dodaje desno dijete nekom Ävoru), DeleteB(briÅ¡e Ävor i njegove potomke).
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
#include<iostream> using namespace std; struct element{ int label; element *lijevo, *desno; }; element *InitB(int n, element *S){ S = new element; S->lijevo = S->desno = NULL; S->label = n; return S; } element *RootB(element *S){ return S; } void ChangeLabelB(int x, element *S){ S->label = x; } element *ParentB(int n, element *S){ if(S->label==n) return NULL; if(S->lijevo){ if(S->lijevo->label==n) return S; ParentB(n,S->lijevo); } if(S->desno){ if(S->desno->label==n) return S; ParentB(n,S->desno); } } element *LeftChildB(element *S){ return S->lijevo; } element *RightChildB(element *S){ return S->desno; } int LabelB(element *S){ return S->label; } void CreateLeftB(int x, element *S){ if(S->lijevo) cout << "Lijevi cvor vec postoji" << endl; else{ element *novi = new element; novi->label = x; novi->lijevo = NULL; novi->desno = NULL; S->lijevo = novi; } } void CreateRightB(int x, element *S){ if(S->desno) cout << "Desni cvor vec postoji" << endl; else{ element *novi = new element; novi->label = x; novi->lijevo = NULL; novi->desno = NULL; S->desno = novi; } } void DeleteB(element *P, element *S){ element *brisi = P, *roditelj = ParentB(P->label, S); if(roditelj->lijevo == P) roditelj->lijevo = NULL; else roditelj->desno = NULL; if(P->lijevo) DeleteB(P->lijevo, S); if(P->desno) DeleteB(P->desno, S); delete brisi; }