Advertisement
Guest User

SDA

a guest
Dec 14th, 2017
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.55 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <conio.h>
  5.  
  6. typedef enum{stanga, dreapta}hand;
  7.  
  8. typedef struct nod{
  9. char *prenume_nume, *tara;
  10. int varsta, loc_atp, nr_titluri;
  11. hand mana;
  12. struct nod *st;
  13. struct nod *dr;
  14. }arbore;
  15.  
  16. arbore *radacina = NULL;
  17.  
  18. arbore *adaugare(arbore *p, char *np, int v, char *t, int l, hand m, int titlu)
  19. {
  20. if (p == NULL)
  21. {
  22. p = (arbore *)malloc(sizeof(arbore));
  23. p->prenume_nume = (char *)malloc(strlen(np) + 1);
  24. p->tara = (char *)malloc(strlen(t) + 1);
  25.  
  26. strcpy(p->prenume_nume, np);
  27. strcpy(p->tara, t);
  28. p->varsta = v;
  29. p->loc_atp = l;
  30. p->mana = m;
  31. p->nr_titluri = titlu;
  32.  
  33. p->st = p->dr = NULL;
  34. }
  35. else
  36. if (strcmp(p->prenume_nume, np) < 0)
  37. {
  38. p->dr = adaugare(p->dr, np, v, t, l, m, titlu);
  39. }
  40. else
  41. if (strcmp(p->prenume_nume, np) > 0)
  42. {
  43. p->st = adaugare(p->st, np, v, t, l, m, titlu);
  44. }
  45. else
  46. printf("Jucatorul exista deja in arbore");
  47. return p;
  48.  
  49. }
  50.  
  51. afisare(arbore *t)
  52. {
  53. if (t != NULL)
  54. {
  55. afisare(t->st);
  56. printf("%s %d %s %d %d %d\n", t->prenume_nume, t->varsta, t->tara, t->loc_atp, t->mana, t->nr_titluri);
  57. afisare(t->dr);
  58. }
  59. }
  60.  
  61. afisare_cond(arbore *t)
  62. {
  63. if (t != NULL)
  64. {
  65. afisare_cond(t->st);
  66. if(t->varsta < 30 && t->mana == dreapta)
  67. printf("%s %d %s %d %d %d\n", t->prenume_nume, t->varsta, t->tara, t->loc_atp, t->mana, t->nr_titluri);
  68. afisare_cond(t->dr);
  69. }
  70. }
  71.  
  72.  
  73. void main(void) {
  74. FILE *f;
  75. int varsta, loc, titluri;
  76. hand mana;
  77. char nume_pren[100],tara[100];
  78.  
  79. int sw;
  80.  
  81. do {
  82. printf("----------------\n");
  83. printf("1.Citire fisier!\n");
  84. printf("2.Afisare ordonata!\n");
  85. printf("3.Afisare conditionata!\n");
  86. printf("4.Stergere-Not working!\n");
  87. printf("5.Iesire!\n");
  88. printf("\nIntroduceti optiunea: \n");
  89. scanf("%d", &sw);
  90.  
  91. switch (sw)
  92. {
  93.  
  94. case 1:
  95. if (fopen_s(&f, "tenis.txt", "rt")) {
  96. printf("Fisierul nu exista");
  97. }
  98. else {
  99. while (!feof(f)) {
  100. fscanf_s(f, "%99s", nume_pren, _countof(nume_pren));
  101. fscanf_s(f, "%d", &varsta);
  102. fscanf_s(f, "%99s", tara, _countof(tara));
  103. fscanf_s(f, "%d", &loc);
  104. fscanf_s(f, "%d", &mana);
  105. fscanf_s(f, "%d", &titluri);
  106. radacina = adaugare(radacina, nume_pren, varsta, tara, loc, mana, titluri);
  107. }
  108. }
  109. break;
  110. case 2:
  111. printf("Afisare ordonata: \n");
  112. afisare(radacina);
  113. break;
  114. case 3:
  115. printf("Afisare conditionata: \n");
  116. afisare_cond(radacina);
  117. break;
  118. case 4:
  119. break;
  120. default :
  121. break;
  122. }
  123. } while (sw != 5);
  124.  
  125. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement