Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <conio.h>
- typedef struct nodl {
- char nume_prenume[100], universitate[100];
- struct nodl *urm;
- }nodl;
- typedef struct noda {
- char tara[100];
- nodl *prim;
- struct noda *st, *dr;
- }noda;
- int maxim = 0;
- noda *t = NULL;
- nodl* adaugare_lista(nodl *prim, char nume_prenume[100], char universitate[100])
- {
- nodl *q1, *q2, *aux;
- aux = (nodl*)malloc(sizeof(nodl));
- strcpy(aux->nume_prenume, nume_prenume);
- strcpy(aux->universitate, universitate);
- aux->urm = NULL;
- for (q1 = q2 = prim; q1 != NULL && strcmp(q1->universitate, universitate) < 0; q2 = q1, q1 = q1->urm);
- if (q1 == q2)
- {
- aux->urm = prim;
- prim = aux;
- }
- else
- {
- aux->urm = q1;
- q2->urm = aux;
- }
- return prim;
- }
- noda* adaugare_arbore(noda *t, char tara[100], char nume_prenume[100], char universitate[100])
- {
- if (t == NULL)
- {
- t = (noda*)malloc(sizeof(noda));
- strcpy(t->tara, tara);
- t->prim = NULL; t->st = t->dr = NULL;
- t->prim = adaugare_lista(t->prim, nume_prenume, universitate);
- }
- else
- {
- if (strcmp(t->tara, tara) > 0)
- t->st = adaugare_arbore(t->st, tara, nume_prenume, universitate);
- else if (strcmp(t->tara, tara) < 0)
- t->dr = adaugare_arbore(t->dr, tara, nume_prenume, universitate);
- else
- t->prim = adaugare_lista(t->prim, nume_prenume, universitate);
- }
- return t;
- }
- void citire()
- {
- char nume_prenume[100], universitate[100], tara[100];
- FILE *f;
- f = fopen("SACI.txt", "rt");
- while (!feof(f))
- {
- fscanf_s(f, "%s", nume_prenume, _countof(nume_prenume));
- fscanf_s(f, "%s", universitate, _countof(universitate));
- fscanf_s(f, "%s", tara, _countof(tara));
- t = adaugare_arbore(t, tara, nume_prenume, universitate);
- }
- fclose(f);
- }
- void afisare(noda *t)
- {
- nodl *q;
- if (t)
- {
- afisare(t->st);
- printf("%s", t->tara);
- for (q = t->prim; q != NULL; q = q->urm)
- printf("\n\t\t%s %s", q->universitate, q->nume_prenume);
- printf("\n");
- afisare(t->dr);
- }
- }
- int main()
- {
- int opt;
- char nume[100];
- do {
- printf("\n1. Incarcare date.");
- printf("\n2. Afisare date.");
- printf("\n0. Iesire");
- printf("\nAlegere: ");
- scanf("%d", &opt);
- switch (opt)
- {
- case 1: citire();
- break;
- case 2: afisare(t);
- break;
- case 0: break;
- default: printf("Alegere gresita!");
- }
- } while (opt != 0);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement