Revision: 68454
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at January 19, 2015 02:10 by zeleee
Initial Code
#include<iostream>
using namespace std;
struct telement{
int oznaka,dijete,brat;
};
struct tstablo{
telement polje[1000];
int korijen;
};
typedef int node;
typedef tstablo* tree;
void initT(node x, tree stablo){
for(int i=0;i<1000;i++){
stablo->polje[i].oznaka=0;
stablo->polje[i].dijete=-1;
stablo->polje[i].brat=-1;
}
stablo->polje[x].oznaka=6;
stablo->korijen=x;
}
int parentT(node n,tree stablo){
if(n==stablo->korijen) {
cout<<"Korijen ne moze imati roditelja!"<<endl;
return -1;
}
for(int i=0;i<1000;i++){
if(stablo->polje[i].dijete==n) return i;
if(stablo->polje[i].brat==n) return parentT(i,stablo);
}
}
node firstchildT(node n,tree stablo){
return stablo->polje[n].dijete;
}
node nextsiblingT(node n,tree stablo){
return stablo->polje[n].brat;
}
node labelT(node n, tree stablo ){
return stablo->polje[n].oznaka;
}
int rootT(tree stablo){
return stablo->korijen;
}
void createT(node x,node n,tree stablo){
if(!stablo->polje[n].oznaka){
cout<<"Cvor ne postoji!"<<endl;
return;
}
if(stablo->polje[n].dijete==-1) {
stablo->polje[n].dijete=x;
}
else{
n=stablo->polje[n].dijete;
while(stablo->polje[n].brat!=-1) n=stablo->polje[n].brat;
stablo->polje[n].brat=x;
}
stablo->polje[x].brat=-1;
stablo->polje[x].dijete=-1;
stablo->polje[x].oznaka=x*3;
}
void changelabelT(int x,node n, tree stablo){
stablo->polje[n].oznaka=x;
}
void deleteT(node n,tree stablo){
if(firstchildT(n,stablo)!=-1) deleteT(stablo->polje[n].dijete,stablo);
if(nextsiblingT(n,stablo)!=-1) deleteT(stablo->polje[n].brat,stablo);
stablo->polje[n].brat=-1;
stablo->polje[n].dijete=-1;
changelabelT(0,n,stablo);
}
Initial URL
Initial Description
2
Initial Title
Prvo dijete sljedeci brat
Initial Tags
Initial Language
C++