Revision: 65683
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at January 11, 2014 03:55 by HeatPwnz
Initial Code
#include<iostream>
using namespace std;
struct elem {
char oznaka;
int firstchild,nextsibling;
};
struct tr {
elem element[1000];
int root;
};
typedef struct tr tree;
typedef int node;
int RootT(tree *T){
return T->root;
}
int FirstChildT (int n, tree *T){
return T->element[n].firstchild;
}
int NextSiblingT (int n, tree *T) {
return T->element[n].nextsibling;
}
int ParentT(int n, tree *T){
if(n == T->root || T->element[n].oznaka == ' ' )
return -1;
for (int i=0; i<1000; i++) {
if (FirstChildT(i, T)==n) return i;
if (NextSiblingT(i, T)==n) return ParentT(i, T);
}
return -1;
}
char LabelT (int n, tree *T) {
return T->element[n].oznaka;
}
int CreateT(char oznaka, int n, tree *T) {
int i=0;
while (LabelT(i, T)!=' ') i++;
T->element[i].oznaka=oznaka;
T->element[i].firstchild=-1;
T->element[i].nextsibling=-1;
if (T->element[n].firstchild!=-1) {
n=FirstChildT(n, T);
while (NextSiblingT(n, T)!=-1) n=NextSiblingT(n, T);
T->element[n].nextsibling=i;
}
else T->element[n].firstchild=i;
return i;
}
void ChangeLabelT(char oznaka, int n, tree *T) {
T->element[n].oznaka=oznaka;
}
bool DeleteT (int n, tree *T) {
int roditelj, brat;
roditelj = ParentT(n,T);
brat = T->element[roditelj].firstchild;
if(T->element[n].oznaka == ' ') return false;
while(T->element[n].firstchild != -1){
int dijete = T->element[n].firstchild;
DeleteT(dijete,T);
}
if(brat == n)
T->element[ParentT(n,T)].firstchild = T->element[n].nextsibling;
else if(T->element[n].nextsibling != -1){
T->element[brat].nextsibling = T->element[n].nextsibling;
}
T->element[n].oznaka = ' ';
return true;
}
tree *InitT(char oznaka, tree *T) {
T=new tree;
T->root=0;
T->element[0].oznaka=oznaka;
T->element[0].firstchild=-1;
T->element[0].nextsibling=-1;
for (int i=1; i<1000; i++) {
T->element[i].oznaka=' ';
T->element[i].firstchild=-1;
T->element[i].nextsibling=-1;
}
return T;
}
Initial URL
Initial Description
header koristen za realizaciju opcenitog stabla
Initial Title
opcenito_stablo.h
Initial Tags
Initial Language
C++