Return to Snippet

Revision: 68457
at January 19, 2015 02:32 by mateocindric


Initial Code
#include<iostream>
using namespace std;

struct elem{
       int oznaka;
       int prvodijete;
       int sljedecibrat;
       };

struct s{
       elem polje[1000];
       int korijen;
       };

s stablo;

void InitT(int x, s&stablo){
  stablo.korijen=1;
  stablo.polje[1].oznaka=x;
  stablo.polje[1].prvodijete=-1; 
  stablo.polje[1].sljedecibrat=-1;
     for(int i=2;i<1000;i++){
         stablo.polje[i].oznaka=-1;
         stablo.polje[i].prvodijete=-1;
         stablo.polje[i].sljedecibrat=-1;   
             }    
}
 
int FirstChildT(int n, s stablo){
return stablo.polje[n].prvodijete;       
}

int NextSiblingT(int n, s stablo){
return stablo.polje[n].sljedecibrat;   
} 
     
int RootT(s stablo){
 return stablo.korijen;   
}     

int LabelT(int n, s stablo){
return stablo.polje[n].oznaka;   
}

int ParentT(int n, s stablo){
    for(int i=1;i<1000;i++){
        if(FirstChildT(i,stablo)==n)
            return i;
        if(NextSiblingT(i,stablo)==n)  
            return ParentT(i,stablo);   
    }
return -1;    
}

int CreateT(int x, int n, s&stablo){
int pom=1;  
while(LabelT(pom, stablo)!=-1) 
     pom++;  
stablo.polje[pom].oznaka=x;            
stablo.polje[pom].prvodijete = -1;     
stablo.polje[pom].sljedecibrat = -1;       
if(stablo.polje[n].prvodijete!=-1){
        n=FirstChildT(n, stablo);     
        while(NextSiblingT(n, stablo)!=-1) 
            n=NextSiblingT(n, stablo);  
        stablo.polje[n].sljedecibrat=pom;                             
    } 
else stablo.polje[n].prvodijete=pom; 
    return pom;   
}

void ChangeLabelT(int x, int n, s&stablo) {
stablo.polje[n].oznaka=x;     
}

void DeleteT(int n, s&stablo){
if(FirstChildT(n,stablo)!=-1) 
    DeleteT(stablo.polje[n].prvodijete,stablo);
if(NextSiblingT(n,stablo)!=-1) 
    DeleteT(stablo.polje[n].sljedecibrat,stablo);    
stablo.polje[n].sljedecibrat=-1;
stablo.polje[n].prvodijete=-1;
ChangeLabelT(-1,n,stablo);
}

Initial URL

                                

Initial Description
Implementacija općenitog stabla prvo dijete - sljedeći brat pomoću polja

Initial Title
prvo_dijete-sljedeci_brat.h

Initial Tags
c++

Initial Language
C++