/ Published in: C++
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
#include <iostream> using namespace std; typedef int labeltype; struct elementi{ labeltype label; elementi *lijevo, *desno; }; typedef elementi cvor; typedef elementi bstablo; cvor ParentB(cvor n,bstablo *stablo){ if(n==stablo){ cout<<"Ne postoji roditelj.."<<endl; } cvor rod; if (stablo->lijevo){ if(stablo->lijevo==n) return stablo->lijevo; rod=ParentB(n, stablo->lijevo); } if(stablo->desno){ if(stablo->desno==n) return stablo->desno; rod=ParentB(n,stablo->desno); } return rod; }; cvor LeftChildB(cvor n, bstablo *stablo){ return *n.lijevo; }; cvor RightChild(cvor n, bstablo *stablo){ return *n.desno; }; labeltype LabelB(cvor n, bstablo *stablo){ return n.label; }; void ChangeLabelB(labeltype xy,cvor n,bstablo *stablo){ n.label=xy; }; cvor RootB(bstablo *stablo){ return *stablo; }; void CreateLeftB(labeltype xy,cvor n, bstablo *stablo){ if(n.lijevo==NULL){ cvor *pokazivac=new cvor; n.lijevo=pokazivac; pokazivac->lijevo=NULL; pokazivac->desno=NULL; return; } else{ cout<<"Vec postoji lijevo dijete.."<<endl; return; } }; void CreateRightB(labeltype xy, cvor n, bstablo *stablo){ if(n.desno==NULL){ cvor *pokazivac=new cvor; n.desno=pokazivac; pokazivac->lijevo=NULL; pokazivac->desno=NULL; return; } else{ cout<<"Vec postoji desno dijete.."<<endl; return;} }; void DeleteB(cvor n, bstablo *stablo){ cvor p; if(n.lijevo!=NULL) DelB(n.lijevo,stablo); if(n.desno!=NULL) DelB(n.desno, stablo); p=ParentB(n,stablo); if(p.lijevo==&n) P.lijevo=NULL; else p.desno=NULL; delete &n; }; void InitB(bstablo *stablo, labeltype xy){ cvor *pokazivac=new elementi; pokazivac->lijevo=NULL; pokazivac->desno=NULL; pokazivac->label=xy; stablo=pokazivac; };