Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //dżewo binarne (float, string)
- #include "stdafx.h"
- #include <malloc.h>
- #include <conio.h>
- #include <cstring>
- struct dzewo
- {
- double dane;
- char *slowo;
- struct dzewo *lewslowo, *prawslowo;
- };
- struct dzewo *Nowe_dzewo(double _dane, char* slowo_str)
- {
- struct dzewo * nowe = (struct dzewo*)malloc(sizeof(struct dzewo));
- nowe->dane = _dane;
- nowe->slowo = NULL;
- nowe->slowo = (char*)malloc (sizeof(char)*(strlen (slowo_str)) );
- strcpy(nowe->slowo, slowo_str);
- nowe->lewslowo = nowe->prawslowo = 0;
- return nowe;
- }
- void Wstaw_dz(struct dzewo *rut, double _dane, char* slowo_str)
- {
- for(;;)
- {
- if (_dane<rut->dane)
- {
- if (rut->lewslowo == 0)
- {
- rut->lewslowo = Nowe_dzewo(_dane, slowo_str);
- return;
- }
- else
- rut = rut->lewslowo;
- }
- else{
- if(rut->prawslowo==0)
- {
- rut->prawslowo = Nowe_dzewo(_dane, slowo_str);
- return;
- }
- else rut = rut->prawslowo;
- }
- }
- }
- int l = 0, p = 0;
- void Wyswietl(struct dzewo * rut)
- {
- printf("%.2lf | %s\n", rut->dane, rut->slowo);
- if (rut->lewslowo != NULL)
- {
- ++l;
- printf("l: %d/", l);
- Wyswietl(rut->lewslowo);
- }
- if (rut->prawslowo != NULL)
- {
- ++p;
- printf("p: %d\\", p);
- Wyswietl(rut->prawslowo);
- }
- }
- bool Wyszukaj(dzewo* rut, float _dane)
- {
- if (rut == NULL)
- return false;
- else if (rut->dane == _dane)
- return true;
- else if (rut->dane < _dane)
- return Wyszukaj(rut->prawslowo, _dane);
- else return Wyszukaj(rut->lewslowo, _dane);
- }
- void Zwalnianie(dzewo *rut)
- {
- if (rut->lewslowo != NULL)
- Zwalnianie(rut->lewslowo);
- if (rut->prawslowo != NULL)
- Zwalnianie(rut->prawslowo);
- delete rut;
- }
- int main()
- {
- double do_szukania = 9.99;
- double liczba;
- char slowo[10];
- FILE *no_plik;
- if ((no_plik = fopen("plik.txt", "r")) != NULL) {
- fscanf(no_plik, "%lf", &liczba);
- fscanf(no_plik, "%s", &slowo);
- dzewo *ent = Nowe_dzewo(liczba, slowo);
- while (!feof(no_plik))
- {
- fscanf(no_plik, "%lf", &liczba);
- fscanf(no_plik, "%s", &slowo);
- Wstaw_dz(ent, liczba, slowo);
- }
- printf("Leci drzewo!\n");
- Wyswietl(ent);
- printf("\n%d", Wyszukaj(ent, 9.99));
- printf("\n%d", Wyszukaj(ent, 2.50000000));
- Zwalnianie(ent);
- }
- else
- printf("Chuju pliku nie ma\n");
- getch();
- return 0;
- }
Advertisement