Revision: 68482
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at January 19, 2015 05:16 by ivan_uzarevic
Initial Code
#ifndef bstablo_polje
#define bstablo_polje
#include <iostream>
using namespace std;
struct bstablo {
int labela;
bstablo *lijevo, *desno;
};
typedef bstablo *vrijed;
bstablo *stablo = new bstablo;
vrijed parentB (vrijed poz, bstablo *stablo) {
static bstablo *prvi = NULL;
static bstablo *drugi = NULL;
if (stablo->lijevo == poz || stablo->desno == poz)
return stablo;
if (stablo->lijevo != NULL)
prvi = parentB (poz, stablo->lijevo);
if (stablo->desno != NULL)
drugi = parentB (poz,stablo->desno);
if (prvi != NULL)
return prvi;
if (drugi != NULL)
return drugi;
return NULL;
}
vrijed leftchildB(vrijed poz, bstablo *stablo) {
return poz->lijevo;
}
vrijed rightchildB(vrijed poz, bstablo *stablo) {
return poz->desno;
}
int labelB (vrijed poz, vrijed stablo) {
if (poz != NULL)
return poz->labela;
}
void changelabelB(int x, vrijed poz, bstablo *stablo) {
if (poz != NULL)
poz->labela = x;
}
vrijed rootB (bstablo *stablo) {
return stablo;
}
void createleftB (int x, vrijed poz, bstablo *stablo) {
if (poz->lijevo != NULL) {
cout << "Lijevo dijete vec postoji" << endl;
return;
}
if (poz == NULL) {
cout << "Cvor kojem zelite dodati dijete ne postoji" << endl;
return;
}
poz->lijevo = new bstablo;
poz->lijevo->labela = x;
poz->lijevo->lijevo = NULL;
poz->lijevo->desno = NULL;
}
void createrightB (int x, vrijed poz, bstablo *stablo) {
if (poz->desno) {
cout << "Desno dijete vec postoji" << endl;
return;
}
if (poz == NULL) {
cout << "Cvor kojem zelite dodati dijete ne postoji" << endl;
return;
}
poz->desno = new bstablo;
poz->desno->labela = x;
poz->desno->lijevo = NULL;
poz->desno->desno = NULL;
}
void deleteB (vrijed poz, bstablo *stablo) {
bstablo *roditelj = parentB (poz, stablo);
if (roditelj->lijevo == poz)
roditelj->lijevo = NULL;
else
roditelj->desno = NULL;
if (poz->lijevo)
deleteB (poz->lijevo, stablo);
if (poz->desno)
deleteB (poz->desno, stablo);
delete poz;
};
void initB (int x, bstablo *stablo) {
stablo->lijevo = NULL;
stablo->desno = NULL;
stablo->labela = x;
}
int provjera (vrijed poz) {
if (poz != NULL)
return 1;
else
return 0;
}
#endif
Initial URL
Initial Description
Zaglavlje sa funkcijama, izvedenih pomoću pokazivaÄa, za rad sa binarnim stablom
Initial Title
bstablo_pokazivaci.h
Initial Tags
data, c++
Initial Language
C++