Advertisement
Dafuq313

ABC text

May 27th, 2015
281
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.25 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <cstring>
  4. using namespace std;
  5. ifstream in ("date.in");
  6. ofstream out ("date.out");
  7. struct nod
  8. {
  9.     int frecv=1;
  10.     char info[100];
  11.     nod *st, *dr;
  12. };
  13. int maxf, minf=99;
  14. void adauga(nod *&r, char cuv[100])
  15. {
  16.     if(!r)
  17.     {
  18.         r=new nod;
  19.         strcpy(r->info, cuv);
  20.         r->st=0;
  21.         r->dr=0;
  22.     }
  23.     else if(strcmp(cuv,r->info)<0)  adauga(r->st,cuv);
  24.     else if(strcmp(cuv,r->info)>0)  adauga(r->dr,cuv);
  25.     else
  26.     {
  27.         r->frecv++;
  28.         if(r->frecv>maxf) maxf=r->frecv;
  29.         if(r->frecv<minf) minf=r->frecv;
  30.     }
  31. }
  32.  
  33. void SRD(nod *r)
  34. {
  35.     if(r->st)   SRD(r->st);
  36.     if(r->frecv==maxf)
  37.     cout<<r->info<<" ";
  38.     if(r->dr)   SRD(r->dr);
  39. }
  40.  
  41. void SRD2(nod *r)
  42. {
  43.     if(r->st)   SRD2(r->st);
  44.     cout<<r->info<<" ";
  45.     if(r->dr)   SRD2(r->dr);
  46. }
  47.  
  48. int main()
  49. {
  50.     nod *r=NULL;
  51.     char text[100];
  52.     in.getline(text,99);
  53.     char *aux=strtok(text," ,.-");
  54.     while (aux != NULL)
  55.     {
  56.         adauga(r,aux);
  57.         aux = strtok (NULL," ,.-");
  58.     }
  59.     cout<<"Frecventa max: ";
  60.     SRD(r);
  61.     cout<<endl<<"Frecventa min: ";
  62.     if(minf==99) minf=1;
  63.     maxf=minf;
  64.     SRD(r);
  65.     cout<<endl<<"Ordine crescatoare: ";
  66.     SRD2(r);
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement