Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- 2. Se citeşte din fişierul “date.in”, de pe prima linie, un număr n (1≤n ≤50).
- De pe următoarea linie se citesc elementele unui şir de lungime n, numere întregi, de maxim 9 cifre.
- Să se scrie un program care să introducă într-o listă simplu înlănţuită elementele distincte ale şirului,
- împreună cu frecvenţa lor de apariţie, şi afişează rezultatul în fişierul “date.out”.
- */
- #include <iostream>
- #include <fstream>
- using namespace std;
- struct nod
- {
- int inf, fr;
- nod*urm;
- }*prim;
- int a[100], n;
- void citire ()
- {
- ifstream f ("fis.in");
- f >> n;
- for (int i = 0; i < n; i++)
- f >> a[i];
- }
- void adaug_sf (nod*&prim, nod*&ultim, int x, int y)
- {
- nod*nou;
- nou = new nod;
- nou -> inf = x;
- nou -> fr = y;
- nou -> urm = NULL;
- if (prim == NULL)
- prim = ultim = nou;
- else
- {
- ultim -> urm = nou;
- ultim = nou;
- }
- }
- void creare (nod*&prim)
- {
- nod*ultim;
- for (int i=0; i<n; i++)
- {
- int ok = 0;
- for (nod*p = prim; p; p=p->urm)
- if(a[i]==p->inf)
- {
- p->fr++;
- ok=1;
- break;
- }
- if(!ok)
- adaug_sf(prim, ultim, a[i], 1);
- }
- }
- void afisare(nod*prim)
- {
- if(prim == NULL)
- return ;
- while (prim)
- {
- cout << prim -> inf << " de " << prim -> fr << "ori\n";
- prim = prim->urm;
- }
- }
- int main()
- {
- citire();
- creare(prim);
- afisare(prim);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement