//#include<stdio.h>
//#include<string.h>
#include<string>
#include<iostream>
#include "drzewo.h"

struct drzewo* dodaj(struct drzewo *d,string slowo)
{
	drzewo *wezel=NULL;
	if(!d)
	{
		// tworzenie nowego wezla wezel;
		//if((wezel=(struct drzewo*)malloc(sizeof(struct drzewo)))==NULL) return NULL;
		//else
		//{
			drzewo *wezel = new drzewo; 
			//wezel->slowo=(char*)malloc(strlen(slowo)+1);
			wezel->slowo = slowo;
//			strcpy(wezel->slowo,slowo);
			wezel->ilosc=1;
			wezel->left=wezel->right=NULL;
		//}

		return wezel;
		
	}
	//if(strcmp(d->slowo,slowo)==0)      
	if(d->slowo == slowo)
	{
		d->ilosc++;
		return d;
	}
	//if(strcmp(d->slowo,slowo)>0) d->left=dodaj(d->left,slowo);
	if(d->slowo > slowo) d->left=dodaj(d->left,slowo);
	else d->right=dodaj(d->right,slowo);

	return d;
}
void wyswietl(struct drzewo *d)
{
	if(!d) return ;
	wyswietl(d->left);
	//printf("%20s %d\n",d->slowo.c_str(),d->ilosc);
	std::cout << d->slowo << " " << d->ilosc << std::endl;
	wyswietl(d->right);
	
}

void zwolnij(struct drzewo *d)
{
	if(!d) return ;
	zwolnij(d->left);
	zwolnij(d->right);
//	delete [] d->slowo;
	delete d;
}