Return to Snippet

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