Return to Snippet

Revision: 38427
at January 2, 2011 08:14 by ivamileti


Initial Code
#include<iostream>
using namespace std;

struct Selement
{
	double oznaka;
	Selement *lijevo, *desno;
};

typedef Selement *element;

element LeftChildB(Selement *bin, Selement *n)
{
	return n->lijevo;
}

element RightChildB(Selement *bin, Selement *n)
{
	return n->desno;
}

double LabelB(Selement *bin, Selement *n)
{
	return n->oznaka;
}

element RootB(Selement *bin)
{
	return(bin);
}


element ParentB(Selement *bin, Selement *n)
{
	element t1;
	bool OK;

	t1 = RootB(bin);
	if(t1==n)
	{
		cout <<"Cvor nema roditelja" << endl;
		exit(0);
	}
}

void CreateLeftB(Selement *bin, Selement *n, double x)
{
	element l,n1;

	if(n->lijevo!=NULL)
	{
		cout <<"Cvor vec ima dijete" << endl;
		exit(0);
	}
	else
	{
		l = (Selement*)malloc(sizeof(Selement));
		l->lijevo = NULL;
		l->desno = NULL;
		l->oznaka = x;
		n->lijevo = l;
	}
}

void CreateRightB(Selement *bin, Selement *n, double x)
{
	element r;

	if(n->desno != NULL){
		cout <<"Cvor vec ima desno dijete" << endl;
		exit(0);
	}
	else
	{
		r = (Selement*)malloc(sizeof(Selement));
		r->lijevo = NULL;
		r->desno = NULL;
		r->oznaka = x;
		n->desno = r;
	}
}


void Del(Selement *bin, Selement *n)
{
	if(n->lijevo != NULL)Del(bin,LeftChildB(bin,n));
	if(n->desno != NULL) Del(bin,RightChildB(bin,n));
	free(n);
}


void DeleteB(Selement *bin, Selement *n)
{
	element t1;

	t1 = ParentB(bin,n);
	if(LeftChildB(bin,t1)==n)
	{
		t1->lijevo = NULL;
	}
	else
	{
		t1->desno = NULL;
	}
	Del(bin,n);
}

void InitB (int x, Selement *n){
     n->oznaka=x;
     n->desno=NULL;
     n->lijevo=NULL;
     }

Initial URL

                                

Initial Description

                                

Initial Title
Implementacija binarnog stabla pomoću pokazivaca

Initial Tags

                                

Initial Language
C++