Revision: 68460
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at January 19, 2015 02:36 by mateocindric
Initial Code
#include <iostream>
using namespace std;
struct element{
int oznaka;
element *lijevi, *desni;
};
typedef element* el;
element *b_stablo=new element;
element *pomoc;
void Initb(int x, element *b_stablo){
b_stablo->oznaka=x;
b_stablo->lijevi=NULL;
b_stablo->desni=NULL;
}
element *Parentb(element *trazi, element *b_stablo){
element *a=NULL, *b=NULL;
if(b_stablo->lijevi==trazi || b_stablo->desni==trazi)
return b_stablo;
if(b_stablo->lijevi!=NULL)
a=Parentb(trazi, b_stablo->lijevi);
if(b_stablo->desni!=NULL)
b=Parentb(trazi, b_stablo->desni);
if(a!=NULL)
return a;
if(b!=NULL)
return b;
return NULL;
}
element *LeftChildb(element *b_stablo){
return b_stablo->lijevi;
}
element *RightChildb(element *b_stablo){
return b_stablo->desni;
}
element *Rootb(element *b_stablo){
return b_stablo;
}
int Labelb(element *b_stablo){
return b_stablo->oznaka;
}
void ChangeLabelb(int x, element *b_stablo){
b_stablo->oznaka=x;
}
bool CreateLeftb(int x, element *b_stablo){
if(LeftChildb(b_stablo)!=NULL)
return false;
element *novi=new element;
b_stablo->lijevi=novi;
novi->oznaka=x;
novi->lijevi=NULL;
novi->desni=NULL;
return true;
}
bool CreateRightb(int x,element *b_stablo){
if(RightChildb(b_stablo)!=NULL)
return false;
element *novi;
novi=new element;
novi->oznaka=x;
b_stablo->desni=novi;
novi->lijevi=NULL;
novi->desni=NULL;
return true;
}
void Deleteb(element *cvor,element *b_stablo){
if(cvor->lijevi!=NULL)
Deleteb(cvor->lijevi,b_stablo);
if(cvor->desni!=NULL)
Deleteb(cvor->desni,b_stablo);
if(cvor!=Rootb(b_stablo) && LeftChildb(Parentb(cvor, b_stablo))==cvor)
Parentb(cvor,b_stablo)->lijevi=NULL;
else if(cvor!=Rootb(b_stablo))
Parentb(cvor,b_stablo)->desni=NULL;
delete cvor;
}
element *ALabel(element *b_stablo, int x){
if(b_stablo->oznaka==x)
return b_stablo;
if(b_stablo->lijevi!=NULL)
if(ALabel(b_stablo->lijevi,x)!=NULL)
return ALabel(b_stablo->lijevi,x);
if(b_stablo->desni!=NULL)
if(ALabel(b_stablo->desni,x)!=NULL)
return ALabel(b_stablo->desni,x);
return NULL;
}
Initial URL
Initial Description
bstablo_pokazivac.h
Initial Title
bstablo_pokazivac.h
Initial Tags
Initial Language
C++