Return to Snippet

Revision: 65732
at January 13, 2014 05:38 by cherryfreya


Initial Code
#include<iostream>
using namespace std;
     
struct element{
    int label;
    element *lijevo, *desno;
};
     
element *InitB(int n, element *S){
    S = new element;
    S->lijevo = S->desno = NULL;
    S->label = n;
    return S;
}
     
element *RootB(element *S){
    return S;
}
     
void ChangeLabelB(int x, element *S){
    S->label = x;
}
     
element *ParentB(int n, element *S){
    if(S->label==n) 
		return NULL;
    if(S->lijevo){
    	if(S->lijevo->label==n) 
			return S;
    	ParentB(n,S->lijevo);
    }
    if(S->desno){
    	if(S->desno->label==n) 
			return S;
    	ParentB(n,S->desno);
    }
}
     
element *LeftChildB(element *S){
    return S->lijevo;
}
     
element *RightChildB(element *S){
    return S->desno;
}
     
int LabelB(element *S){
    return S->label;
}
     
void CreateLeftB(int x, element *S){
    if(S->lijevo) 
		cout << "Lijevi cvor vec postoji" << endl;
    else{
    	element *novi = new element;
    	novi->label = x;
    	novi->lijevo = NULL;
    	novi->desno = NULL;
    	S->lijevo = novi;
    }
}
     
void CreateRightB(int x, element *S){
    if(S->desno) 
		cout << "Desni cvor vec postoji" << endl;
    else{
    	element *novi = new element;
    	novi->label = x;
    	novi->lijevo = NULL;
    	novi->desno = NULL;
    	S->desno = novi;
    }
}
     
void DeleteB(element *P, element *S){
    element *brisi = P, *roditelj = ParentB(P->label, S);
    if(roditelj->lijevo == P) 
		roditelj->lijevo = NULL;
    else 
		roditelj->desno = NULL;
    if(P->lijevo) 
		DeleteB(P->lijevo, S);
    if(P->desno) 
		DeleteB(P->desno, S);
    delete brisi;
}

Initial URL


Initial Description
Ovo je biblioteka u kojoj se nalaze funkcije vezane uz implementaciju funkcija stabla pomoću pokazivača, a koje se koriste u  programu glavni_program. Funkcije su: InitB (inicijalizira stablo s korijenom), RootB (vraća korijen), ChangeLabelB(mijenja oznaku nekog čvora u stablu), ParentB(vraća roditelja nekog čvora), LeftChildB(vraća lijevo dijete nekog čvora), RightChildB(vraća desno dijete nekog čvora), LabelB(vraća vrijednost čvora), CreateLeftB(dodaje lijevo dijete nekom čvoru), CreateRightB(dodaje desno dijete nekom čvoru), DeleteB(briše čvor i njegove potomke).

Initial Title
biblioteka_polje_pokazivac

Initial Tags


Initial Language
C++