Revision: 68452
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at January 19, 2015 02:08 by zeleee
Initial Code
#include <iostream>
using namespace std;
struct tbstablo{
int oznaka;
tbstablo *lc,*rc;
};
typedef tbstablo* cvor;
typedef cvor btree;
cvor parentB(cvor n, btree stablo){
cvor parentL=NULL, parentR=NULL;
if (stablo->lc == n || stablo->rc == n) //ako je lijevo dijete stabla ili desno dijete stabla jednako tom cvoru vrati adresu stabla
return stablo;
if (stablo->lc) //u suprotnom ako postoji lijevo dijete trazi lijevo
parentL = parentB(n, stablo->lc);
if (stablo->rc) //ako postoji desno dijete trazi desno
parentR = parentB(n, stablo->rc);
if (parentL) //ako je razl. od NULL tada je roditelj nadjen kod lijevog dijeteta
return parentL;
if (parentR) //ako je razl. od NULL tada je roditelj nadjen kod desnog dijeteta
return parentR;
return NULL; //inace vrati NULL(nije nadjen roditelj,tj. ne postoji roditelj)
}
cvor leftchildB(cvor n,btree stablo){
return n->lc;
}
cvor rightchildB(cvor n,btree stablo){
return n->rc;
}
int labelB(cvor n, btree stablo){
return n->oznaka;
}
void changelabelB(int x, cvor n,btree stablo){
n->oznaka=x;
}
cvor rootB(btree stablo){
return stablo;
}
void createleftB(int x,cvor n,btree stablo){
if(n->lc)
cout<<"Cvor je zauzet!"<<endl;
else{
cvor novi=new tbstablo;
n->lc=novi;
novi->lc=NULL;
novi->rc=NULL;
novi->oznaka=x;
}
}
void createrightB(int x,cvor n,btree stablo){
if(n->rc)
cout<<"Cvor je zauzet!"<<endl;
else{
cvor novi=new tbstablo;
n->rc=novi;
novi->lc=NULL;
novi->rc=NULL;
novi->oznaka=x;
}
}
void deleteB (cvor n,btree stablo) {
if (n->lc)
deleteB(n->lc, stablo);
if (n->rc)
deleteB(n->rc, stablo);
if (n != rootB(stablo) && leftchildB(parentB(n, stablo),stablo)==n)
parentB(n, stablo)->lc = NULL;
else if (n != rootB(stablo))
parentB(n, stablo)->rc = NULL;
cout << "Izbrisan cvor " << n->oznaka << "." << endl;
cout<< "Adresa lijevog dijeteta dvora:"<<n->lc<<endl;
cout<< "Adresa desnog dijeteta cvora:"<<n->rc<<endl;
delete n;
}
void initB(int x,btree stablo){
stablo->lc = stablo->rc = NULL;
stablo->oznaka = x;
}
Initial URL
Initial Description
4
Initial Title
Binarno stablo pokazivaci
Initial Tags
Initial Language
C++