Revision: 65698
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at January 12, 2014 04:11 by mvracan
Initial Code
#include<iostream>
using namespace std;
struct anode{
int label;
bool used;
};
struct atree{
anode polje[1000];
};
atree *aInitB(int x,atree *T){
T = new atree;
for(int i=0;i<1000;i++){
T->polje[i].used = false;
T->polje[i].label = -1;
}
T->polje[1].label = x;
T->polje[1].used = true;
return T;
}
int aLabelB(int n,atree *T){
return T->polje[n].label;
}
void aChangeLabelB(int x,int n,atree *T){
T->polje[n].label = x;
}
int aRootB(atree *T){
return T->polje[1].label;
}
int aLeftChildB(int n,atree *T){
return 2*n;
}
int aRightChildB(int n,atree *T){
return 2*n+1;
}
int aParentB(int n,atree *T){
if(T->polje[1].label==n) return -1;
if(n%2) return n/2+1;
else return n/2;
}
void aCreateLeftB(int x,int n,atree *T){
if(T->polje[2*n].used) cout << "Lijevo dijete ve����¯�¿�½ postoji!" << endl;
else{
T->polje[2*n].label = x;
T->polje[2*n].used = true;
}
}
void aCreateRightB(int x,int n,atree *T){
if(T->polje[2*n+1].used) cout << "Desno dijete ve����¯�¿�½ postoji!" << endl;
else{
T->polje[2*n+1].label = x;
T->polje[2*n+1].used = true;
}
}
void aDeleteB(int n,atree *T){
if(T->polje[aLeftChildB(n,T)].used) aDeleteB(2*n,T);
if(T->polje[aRightChildB(n,T)].used) aDeleteB(2*n-1,T);
T->polje[n].label = -1;
T->polje[n].used = false;
}
Initial URL
Initial Description
zadatak4
Initial Title
binarno stablo pomocu polja.h
Initial Tags
Initial Language
C++