Advertisement
Guest User

2Laboratorinfo1908

a guest
Sep 19th, 2014
238
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.56 KB | None | 0 0
  1. /*
  2. 2.  Se citeşte din fişierul “date.in”, de pe prima linie, un număr n (1≤n ≤50).  
  3. De pe următoarea linie se citesc elementele unui şir de lungime n, numere întregi, de maxim 9 cifre.
  4. Să se scrie un program care să introducă într-o listă simplu înlănţuită elementele distincte ale şirului,
  5. împreună cu frecvenţa lor de apariţie, şi afişează rezultatul în fişierul “date.out”.
  6. */
  7. #include <iostream>
  8. #include <fstream>
  9. using namespace std;
  10.  
  11. struct nod
  12. {
  13.     int inf, fr;
  14.     nod*urm;
  15. }*prim;
  16.  
  17. int a[100], n;
  18.  
  19. void citire ()
  20. {
  21.     ifstream f ("fis.in");
  22.     f >> n;
  23.     for (int i = 0; i < n; i++)
  24.         f >> a[i];
  25. }
  26.  
  27. void adaug_sf (nod*&prim, nod*&ultim, int x, int y)
  28. {
  29.     nod*nou;
  30.     nou = new nod;
  31.     nou -> inf = x;
  32.     nou -> fr = y;
  33.     nou -> urm = NULL;
  34.     if (prim == NULL)
  35.         prim = ultim = nou;
  36.     else
  37.     {
  38.         ultim -> urm = nou;
  39.         ultim = nou;
  40.     }
  41. }
  42.  
  43. void creare (nod*&prim)
  44. {
  45.     nod*ultim;
  46.     for (int i=0; i<n; i++)
  47.     {
  48.         int ok = 0;
  49.         for (nod*p = prim; p; p=p->urm)
  50.             if(a[i]==p->inf)
  51.             {
  52.                 p->fr++;
  53.                 ok=1;
  54.                 break;
  55.             }
  56.         if(!ok)
  57.             adaug_sf(prim, ultim, a[i], 1);
  58.     }
  59. }
  60.  
  61. void afisare(nod*prim)
  62. {
  63.     if(prim == NULL)
  64.         return ;
  65.     while (prim)
  66.     {
  67.         cout << prim -> inf << " de " << prim -> fr << "ori\n";
  68.         prim = prim->urm;
  69.     }
  70. }
  71.  
  72. int main()
  73. {
  74.     citire();
  75.     creare(prim);
  76.     afisare(prim);
  77.     return 0;
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement