Revision: 38553
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at January 5, 2011 01:44 by marsklepi
Initial Code
#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;
};
Initial URL
Initial Description
Initial Title
binarno stablo pomocu pokazivaca
Initial Tags
Initial Language
C++