Return to Snippet

Revision: 68578
at January 21, 2015 03:44 by vangogh94


Initial Code
#include <iostream>
using namespace std;

typedef int cvor;

struct cvorStrukt{
  cvor data;
  bool used;
  cvorStrukt(): used(false){}
};

typedef cvorStrukt elem;
struct bStabloStrukt {
  cvorStrukt polje [10000];
};
cvor ParentB(cvor indeks, bStabloStrukt *binStablo){
  if(indeks==1||binStablo->polje[indeks].used==false)
    return 0;
  else return indeks/2;
}

cvor LeftChildB(cvor indeks, bStabloStrukt *binStablo){
  if(binStablo->polje[indeks*2].used==false)
    return 0;
  else return indeks*2;
}

cvor RightChildB(cvor indeks, bStabloStrukt *binStablo){
  if(binStablo->polje[indeks*2+1].used==false)
    return 0;
  else return indeks*2+1;
}

cvor LabelB(short indeks, bStabloStrukt *binStablo){
  return binStablo->polje[indeks].data;
}

void ChangeLabelB(cvor unos, short indeks, bStabloStrukt *binStablo){
  if(binStablo->polje[indeks].used==false)
    return;
  else binStablo->polje[indeks].data=unos;
}

cvor RootB(bStabloStrukt *binStablo){
  return 1;
}

bool CreateLeftB(cvor unos, short indeks, bStabloStrukt *binStablo){
  if(binStablo->polje[indeks*2].used==true)
    return false;
  binStablo->polje[indeks*2].used=true;
  binStablo->polje[indeks*2].data=unos;
  return true;
}

bool CreateRightB(cvor unos, short indeks, bStabloStrukt *binStablo){
  if(binStablo->polje[indeks*2+1].used==true)
    return false;
  binStablo->polje[indeks*2+1].used=true;
  binStablo->polje[indeks*2+1].data=unos;
  return true;
}

void DeleteB(short indeks, bStabloStrukt *binStablo){
  if(LeftChildB(indeks, binStablo)==true) //krećemo se lijevom stranom počevši od cvora za brisanje
    DeleteB(indeks*2, binStablo);
  if(RightChildB(indeks, binStablo)==true)//krecemo se desnom stranom
    DeleteB(indeks*2+1, binStablo);
  binStablo->polje[indeks].used=false;
}

void InitB(cvor unos, bStabloStrukt *&binStablo){
  binStablo=new bStabloStrukt;
  binStablo->polje[1].used=true;
  binStablo->polje[1].data=unos;
}

Initial URL


Initial Description
Biblioteka sa funkcijama za rad sa stablom pomoću polja

Initial Title
binStablo_polje.h

Initial Tags


Initial Language
C++