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 enum{stanga, dreapta}hand;
- typedef struct nod{
- char *prenume_nume, *tara;
- int varsta, loc_atp, nr_titluri;
- hand mana;
- struct nod *st;
- struct nod *dr;
- }arbore;
- arbore *radacina = NULL;
- arbore *adaugare(arbore *p, char *np, int v, char *t, int l, hand m, int titlu)
- {
- if (p == NULL)
- {
- p = (arbore *)malloc(sizeof(arbore));
- p->prenume_nume = (char *)malloc(strlen(np) + 1);
- p->tara = (char *)malloc(strlen(t) + 1);
- strcpy(p->prenume_nume, np);
- strcpy(p->tara, t);
- p->varsta = v;
- p->loc_atp = l;
- p->mana = m;
- p->nr_titluri = titlu;
- p->st = p->dr = NULL;
- }
- else
- if (strcmp(p->prenume_nume, np) < 0)
- {
- p->dr = adaugare(p->dr, np, v, t, l, m, titlu);
- }
- else
- if (strcmp(p->prenume_nume, np) > 0)
- {
- p->st = adaugare(p->st, np, v, t, l, m, titlu);
- }
- else
- printf("Jucatorul exista deja in arbore");
- return p;
- }
- afisare(arbore *t)
- {
- if (t != NULL)
- {
- afisare(t->st);
- printf("%s %d %s %d %d %d\n", t->prenume_nume, t->varsta, t->tara, t->loc_atp, t->mana, t->nr_titluri);
- afisare(t->dr);
- }
- }
- afisare_cond(arbore *t)
- {
- if (t != NULL)
- {
- afisare_cond(t->st);
- if(t->varsta < 30 && t->mana == dreapta)
- printf("%s %d %s %d %d %d\n", t->prenume_nume, t->varsta, t->tara, t->loc_atp, t->mana, t->nr_titluri);
- afisare_cond(t->dr);
- }
- }
- void main(void) {
- FILE *f;
- int varsta, loc, titluri;
- hand mana;
- char nume_pren[100],tara[100];
- int sw;
- do {
- printf("----------------\n");
- printf("1.Citire fisier!\n");
- printf("2.Afisare ordonata!\n");
- printf("3.Afisare conditionata!\n");
- printf("4.Stergere-Not working!\n");
- printf("5.Iesire!\n");
- printf("\nIntroduceti optiunea: \n");
- scanf("%d", &sw);
- switch (sw)
- {
- case 1:
- if (fopen_s(&f, "tenis.txt", "rt")) {
- printf("Fisierul nu exista");
- }
- else {
- while (!feof(f)) {
- fscanf_s(f, "%99s", nume_pren, _countof(nume_pren));
- fscanf_s(f, "%d", &varsta);
- fscanf_s(f, "%99s", tara, _countof(tara));
- fscanf_s(f, "%d", &loc);
- fscanf_s(f, "%d", &mana);
- fscanf_s(f, "%d", &titluri);
- radacina = adaugare(radacina, nume_pren, varsta, tara, loc, mana, titluri);
- }
- }
- break;
- case 2:
- printf("Afisare ordonata: \n");
- afisare(radacina);
- break;
- case 3:
- printf("Afisare conditionata: \n");
- afisare_cond(radacina);
- break;
- case 4:
- break;
- default :
- break;
- }
- } while (sw != 5);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement