Return to Snippet

Revision: 68405
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++