Return to Snippet

Revision: 38553
at January 5, 2011 01:44 by marsklepi


Initial Code
#include <iostream>
using namespace std;
typedef int labeltype;

struct elementi{
    labeltype label;
    elementi *lijevo, *desno;
};

typedef elementi cvor;
typedef elementi bstablo;

cvor ParentB(cvor n,bstablo *stablo){
    if(n==stablo){
       cout<<"Ne postoji roditelj.."<<endl;
       }
    cvor rod;
    if (stablo->lijevo){
      if(stablo->lijevo==n)
        return stablo->lijevo;
      rod=ParentB(n, stablo->lijevo);
    }
    if(stablo->desno){
        if(stablo->desno==n)
           return stablo->desno;
        rod=ParentB(n,stablo->desno);
    }
    return rod;
};

cvor LeftChildB(cvor n, bstablo *stablo){
    return *n.lijevo;
};

cvor RightChild(cvor n, bstablo *stablo){
    return *n.desno;
};

labeltype LabelB(cvor n, bstablo *stablo){
    return n.label;
};
void ChangeLabelB(labeltype xy,cvor n,bstablo *stablo){
   n.label=xy;
};

cvor RootB(bstablo *stablo){
    return *stablo;
};

void CreateLeftB(labeltype xy,cvor n, bstablo *stablo){
   if(n.lijevo==NULL){
      cvor *pokazivac=new cvor;
      n.lijevo=pokazivac;
      pokazivac->lijevo=NULL;
      pokazivac->desno=NULL;
      return;
   }
   else{
       cout<<"Vec postoji lijevo dijete.."<<endl;
       return;
       }
};
void CreateRightB(labeltype xy, cvor n, bstablo *stablo){
    if(n.desno==NULL){
       cvor *pokazivac=new cvor;
       n.desno=pokazivac;
       pokazivac->lijevo=NULL;
       pokazivac->desno=NULL;
       return;
    }
    else{
         cout<<"Vec postoji desno dijete.."<<endl;
         return;}
};

void DeleteB(cvor n, bstablo *stablo){
    cvor p;
    if(n.lijevo!=NULL) DelB(n.lijevo,stablo);
    if(n.desno!=NULL) DelB(n.desno, stablo);
    p=ParentB(n,stablo);
    if(p.lijevo==&n) P.lijevo=NULL;
    else p.desno=NULL;
    delete &n;
};
void InitB(bstablo *stablo, labeltype xy){
    cvor *pokazivac=new elementi;
    pokazivac->lijevo=NULL;
    pokazivac->desno=NULL;
    pokazivac->label=xy;
    stablo=pokazivac;
};

Initial URL

                                

Initial Description

                                

Initial Title
binarno stablo pomocu pokazivaca

Initial Tags

                                

Initial Language
C++