Advertisement
globalbus

drzewko_okta

May 17th, 2011
371
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.22 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4.  
  5. typedef struct drzewo
  6. {
  7.     short wartosc;
  8.     unsigned int licznik;
  9.     struct drzewo *L, *P;
  10. } drzewo;
  11. void dodaj(drzewo**, int);
  12. void print_drzewo(drzewo*);
  13.  
  14. int main()
  15. {
  16.     drzewo *start=NULL;
  17.     dodaj(&start, 17);
  18.     dodaj(&start, 13);
  19.     dodaj(&start, 18);
  20.     dodaj(&start, 15);
  21.     dodaj(&start, 19);
  22.     dodaj(&start, 25);
  23.     dodaj(&start, 20);
  24.     dodaj(&start, 30);
  25.     dodaj(&start, 14);
  26.     print_drzewo(start);
  27.     return 0;
  28. }
  29.  
  30. void dodaj(drzewo **start, int liczba)
  31. {
  32.     drzewo *biezacy=*start;
  33.     drzewo *temp=NULL;
  34.     if(biezacy==NULL)
  35.     {
  36.         temp=malloc(sizeof(drzewo));
  37.         temp->wartosc=liczba;
  38.         temp->L=NULL;
  39.         temp->P=NULL;
  40.         temp->licznik=1;
  41.         *start=temp;
  42.         return;
  43.     }
  44.     if(liczba<biezacy->wartosc)
  45.         dodaj(&(biezacy->L),liczba);
  46.     else if(liczba==biezacy->wartosc)
  47.         biezacy->licznik++;
  48.     else
  49.         dodaj(&(biezacy->P),liczba);
  50. }
  51. void print_drzewo(drzewo* p_drzewo)
  52. {
  53.     if(p_drzewo)
  54.     {
  55.         print_drzewo(p_drzewo->L);
  56.         printf("%d licznik %d\n", p_drzewo->wartosc, p_drzewo -> licznik);
  57.         print_drzewo(p_drzewo->P);
  58.     }
  59.     return;
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement