Revision: 68504
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at January 19, 2015 05:55 by ksimunovic
Initial Code
#include <iostream>
using namespace std;
char lab2[50];
bool alocirano2 = false;
bool nadjen;
struct ele
{
char naziv[50];
ele *lijevo, *desno;
ele()
{
lijevo = NULL, desno = NULL;
}
};
void InitB(char naziv[50], ele *stablo)
{
strcpy(stablo->naziv, naziv);
}
void RootB(ele *stablo)
{
strcpy(lab2, stablo->naziv);
}
bool LeftChildB(char naziv[50], ele *stablo)
{
ele *novi = new ele;
novi = stablo;
if(novi->lijevo)
{
if(!strcmp(naziv, novi->naziv))
{
strcpy(lab2, novi->lijevo->naziv);
cout << "Lijevo dijete je nadjeno!" << endl;
nadjen = true;
return 1;
}
LeftChildB(naziv, novi->lijevo);
}
if(novi->desno)
LeftChildB(naziv, novi->desno);
return 0;
}
bool RightChildB(char naziv[50], ele *stablo)
{
ele *novi = new ele;
novi = stablo;
if(novi->lijevo)
LeftChildB(naziv, novi->lijevo);
if(novi->desno)
{
if(!strcmp(naziv, novi->naziv))
{
strcpy(lab2, novi->desno->naziv);
cout << "Desno dijete je nadjeno!" << endl;
nadjen = true;
return 1;
}
LeftChildB(naziv, novi->desno);
}
return 0;
}
bool CreateLeftB(char naziv2[50], char naziv[50], ele *stablo)
{
ele *novi = new ele;
novi = stablo;
if(!strcmp(naziv2, novi->naziv))
{
if(novi->lijevo)
{
cout << "Pogreska!" << endl;
return 0;
}
ele *novi3 = new ele;
strcpy(novi3->naziv, naziv);
novi->lijevo = novi3;
nadjen = true;
cout << "Uspjesno je kreirano novo dijete!" << endl;
return 1;
}
if(novi->lijevo)
{
if(!strcmp(naziv2, novi->naziv))
{
if(novi->lijevo)
{
cout << "Pogreska!" << endl;
return 0;
}
ele *novi3 = new ele;
strcpy(novi3->naziv, naziv);
novi->lijevo = novi3;
nadjen = true;
cout << "Uspjesno je kreirano novo dijete!" << endl;
return 1;
}
CreateLeftB(naziv2, naziv, novi->lijevo);
}
if(novi->desno)
{
if(!strcmp(naziv2, novi->naziv))
{
if(novi->lijevo)
{
cout << "Pogreska!" << endl;
return 0;
}
ele *novi2 = new ele;
strcpy(novi2->naziv, naziv);
novi->lijevo = novi2;
nadjen = true;
cout << "Uspjesno je kreirano novo dijete!" << endl;
return 1;
}
CreateLeftB(naziv2, naziv, novi->desno);
}
return 0;
}
bool CreateRightB(char naziv2[50], char naziv[50], ele *stablo)
{
ele *novi = new ele;
novi = stablo;
if(!strcmp(naziv2, novi->naziv))
{
if(novi->desno)
{
cout << "Pogreska!" << endl;
return 0;
}
ele *novi3 = new ele;
strcpy(novi3->naziv, naziv);
novi->desno = novi3;
nadjen = true;
cout << "Uspjesno je kreirano novo dijete!" << endl;
return 1;
}
if(novi->desno)
{
if(!strcmp(naziv2, novi->naziv))
{
if(novi->desno)
{
cout << "Pogreska!" << endl;
return 0;
}
ele *novi3 = new ele;
strcpy(novi3->naziv, naziv);
novi->desno = novi3;
nadjen = true;
cout << "Uspjesno je kreirano novo dijete!" << endl;
return 1;
}
CreateLeftB(naziv2, naziv, novi->desno);
}
if(novi->lijevo)
{
if(!strcmp(naziv2, novi->naziv))
{
if(novi->desno)
{
cout << "Pogreska!" << endl;
return 0;
}
ele *novi2 = new ele;
strcpy(novi2->naziv, naziv);
novi->desno = novi2;
nadjen = true;
cout << "Uspjesno je kreirano novo dijete!" << endl;
return 1;
}
CreateLeftB(naziv2, naziv, novi->lijevo);
}
return 0;
}
bool ParentB(char naziv[50], ele *stablo)
{
ele *novi = new ele;
novi = stablo;
if(novi->lijevo)
{
if(!strcmp(novi->lijevo->naziv, naziv))
{
cout << "Pronadjeni roditelj: " << novi->naziv << endl;
nadjen = true;
return 1;
}
ParentB(naziv, novi->lijevo);
}
if(novi->desno)
{
if(!strcmp(novi->desno->naziv, naziv))
{
cout << "Pronadjeni roditelj: " << novi->naziv << endl;
nadjen = true;
return 1;
}
ParentB(naziv, novi->desno);
}
return 0;
}
bool DeleteB(char naziv[50], ele *stablo)
{
ele *novi = new ele;
novi = stablo;
if(!strcmp(novi->naziv, naziv))
{
cout << "Obrisano!" << endl;
novi->lijevo = NULL;
novi->desno = NULL;
nadjen = true;
return 1;
}
if(novi->lijevo)
{
if(!strcmp(novi->lijevo->naziv, naziv))
{
cout << "Obrisani potomci!" << endl;
novi->lijevo = NULL;
novi->desno = NULL;
nadjen = true;
return 1;
}
DeleteB(naziv, novi->lijevo);
}
if(novi->desno)
{
if(!strcmp(novi->desno->naziv, naziv))
{
cout << "Obrisani potomci!" << endl;
novi->lijevo = NULL;
novi->desno = NULL;
nadjen = true;
return 1;
}
DeleteB(naziv, novi->desno);
}
return 0;
}
bool ChangeLabelB(char naziv[50], char naziv2[50], ele *stablo)
{
ele *novi = new ele;
novi = stablo;
if(!strcmp(novi->naziv, naziv))
{
cout << "Novi naziv cvora: " << naziv2 << endl;
strcpy(novi->naziv, naziv2);
nadjen = true;
return 1;
}
if(novi->lijevo)
{
if(!strcmp(novi->lijevo->naziv, naziv))
{
cout << "Novi naziv cvora: " << naziv2 << endl;
strcpy(novi->naziv, naziv2);
nadjen = true;
return 1;
}
ChangeLabelB(naziv, naziv2, novi->lijevo);
}
if(novi->desno)
{
if(!strcmp(novi->desno->naziv, naziv))
{
cout << "Novi naziv cvora: " << naziv2 << endl;
strcpy(novi->naziv, naziv2);
nadjen = true;
return 1;
}
ChangeLabelB(naziv, naziv2, novi->desno);
}
return 0;
}
Initial URL
Initial Description
bstablo_pokazivac.h
Initial Title
bstablo_pokazivac.h
Initial Tags
Initial Language
C++