Revision: 68512
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at January 19, 2015 07:35 by akljaic
Initial Code
#include <iostream>
using namespace std;
struct elem{
char label;
int firstchild, nextsibling;
};
struct tree{
elem element[1000];
int first;
};
tree T;
int RootT(tree *T){
return T->first;
}
int FirstChildT(int n, tree *T){
if(T->element[n].firstchild != -1) return T->element[n].firstchild;
else return -1;
}
int NextSiblingT(int n, tree *T){
if(T->element[n].nextsibling != -1) return T->element[n].nextsibling;
else return -1;
}
int ParentT(int n, tree *T){
for(int i=0; i<1000; i++){
if(T->element[i].firstchild == n) return i;
if(T->element[i].nextsibling == n) return ParentT(i,T);
}
}
char LabelT(int n, tree *T){
return T->element[n].label;
}
void CreateT(int x, int n, tree *T){
if(T->element[n].label == '0') {
cout << "Ne postoji cvor " << n << endl;
return;
}
if(T->element[n].firstchild == -1)
T->element[n].firstchild = x;
else if (T->element[T->element[n].firstchild].nextsibling == -1)
T->element[T->element[n].firstchild].nextsibling = x;
else{
n = T->element[n].firstchild;
while(T->element[n].nextsibling != -1)
n = T->element[n].nextsibling;
T->element[n].nextsibling = x;
}
T->element[x].label = T->element[n].label+1;
T->element[x].firstchild = -1;
T->element[x].nextsibling = -1;
}
void ChangeLabelT(char x, int n, tree *T){
T->element[n].label = x;
}
void DeleteT(int n, tree *T){
if(T->element[n].firstchild != -1)
DeleteT(T->element[n].firstchild,T);
if(T->element[n].nextsibling != -1)
DeleteT(T->element[n].nextsibling,T);
T->element[n].firstchild = -1;
T->element[n].nextsibling = -1;
T->element[n].label = '0';
if(T->element[ParentT(n,T)].nextsibling != -1)
T->element[ParentT(n,T)].firstchild = T->element[ParentT(n,T)].nextsibling;
else
T->element[ParentT(n,T)].firstchild = -1;
}
tree *InitT(int x, tree *T){
T = new tree;
for(int i=0; i<1000; i++){
T->element[i].label = '0';
T->element[i].firstchild = -1;
T->element[i].nextsibling = -1;
}
T->element[x].label = 'A';
T->first = x;
return T;
}
Initial URL
asdf
Initial Description
asdf
Initial Title
opcenito_stablo.h
Initial Tags
Initial Language
C++