Return to Snippet

Revision: 68522
at January 19, 2015 08:17 by kgrlic


Initial Code
#include<iostream>
using namespace std;
 
struct st_ELEM{
	int label;
	st_ELEM *lijevo,*desno;
};
 
st_ELEM *INIT_B(int n,st_ELEM *T){
	T = new st_ELEM;
	T->lijevo = T->desno = NULL;
	T->label = n;
	return T;
}
 
st_ELEM *ROOT_B(st_ELEM *T){
	return T;
}
 
void CHANGE_LABEL_B(int x,st_ELEM *T){
	T->label = x;
}
 
st_ELEM *PARENT_B(int n,st_ELEM *T){
	if(T->label==n) return NULL;
	if(T->lijevo){
		if(T->lijevo->label==n) return T;
		PARENT_B(n,T->lijevo);
	}
	if(T->desno){
		if(T->desno->label==n) return T;
		PARENT_B(n,T->desno);
	}
}
 
st_ELEM *LEFT_CHILD_B(st_ELEM *T){
	return T->lijevo;
}
 
st_ELEM *RIGHT_CHILD_B(st_ELEM *T){
	return T->desno;
}
 
int LABEL_B(st_ELEM *T){
	return T->label;
}
 
void CREATE_LEFT_B(int x, st_ELEM *T){
	if(T->lijevo) cout << "Vec postoji!" << endl;
	else{
	st_ELEM *novi = new st_ELEM;
	novi->label = x;
	novi->lijevo = NULL;
	novi->desno = NULL;
	T->lijevo = novi;
	}
}
 
void CREATE_RIGHT_B(int x,st_ELEM *T){
	if(T->desno) cout << "Vec postoji!" << endl;
	else{
		st_ELEM *novi = new st_ELEM;
		novi->label = x;
		novi->lijevo = NULL;
		novi->desno = NULL;
		T->desno = novi;
	}
}
 
void DELETE_B(st_ELEM *P,st_ELEM *T){
	st_ELEM *erase = P,*roditelj = PARENT_B(P->label,T);
	if(roditelj->lijevo==P) roditelj->lijevo = NULL;
	else roditelj->desno = NULL;
	if(P->lijevo) DELETE_B(P->lijevo,T);
	if(P->desno) DELETE_B(P->desno,T);
	delete erase;
}

Initial URL


Initial Description
test

Initial Title
binarno_pokazivaci.h

Initial Tags


Initial Language
C++