Revision: 68405
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at January 17, 2015 02:06 by cvitka
Initial Code
#include <iostream>
using namespace std;
struct element
{
int label;
bool used;
};
struct binarno_stablo
{
struct element elementi[1000];
};
int ParentB(int n, binarno_stablo *B)
{
if(B->elementi[n].used!=0)
return (n/2);
else
return -1;
};
int LeftChildB(int n, binarno_stablo *B)
{
if(B->elementi[n].used!=0 && B->elementi[n*2].used==1)
return (n*2);
else
return -1;
};
int RightChildB(int n, binarno_stablo *B)
{
if(B->elementi[n].used!=0 && B->elementi[n*2+1].used==1)
return (n*2+1);
else
return -1;
};
int LabelB(int n, binarno_stablo *B)
{
if(B->elementi[n].used!=0)
return B->elementi[n].label;
else
return -1;
};
int ChangeLabelB(int x,int n, binarno_stablo *B)
{
if(B->elementi[n].used!=0)
B->elementi[n].label=x;
else
return -1;
};
int RootB(binarno_stablo *B)
{
if(B->elementi[1].used!=0)
return B->elementi[1].label;
else
return -1;
};
int CreateLeftB(int x, int n, binarno_stablo *B)
{
if(B->elementi[n].used!=0 && B->elementi[n*2].used==0)
{
B->elementi[n*2].label=x;
B->elementi[n*2].used=1;
}
else
return -1;
};
int CreateRightB(int x, int n, binarno_stablo *B)
{
if(B->elementi[n].used!=0 && B->elementi[n*2+1].used==0)
{
B->elementi[n*2+1].label=x;
B->elementi[n*2+1].used=1;
}
else
return -1;
};
void DeleteB(int n, binarno_stablo *B)
{
if(B->elementi[n].used!=0)
{
if(B->elementi[n*2].used==1)
DeleteB(n*2, B);
if(B->elementi[n*2+1].used==1)
DeleteB(n*2+1, B);
B->elementi[n].used=0;
}
else
return;
};
void InitB(int x, binarno_stablo *B)
{
B->elementi[1].label=x;
B->elementi[1].used=1;
for(int i=2;i<1000;i++)
B->elementi[i].used=0;
};
Initial URL
Initial Description
Implementacija binarnog stabla pomoću polja u jeziku C++
Initial Title
bstablo_polje.h
Initial Tags
Initial Language
C++