Advertisement
Guest User

Untitled

a guest
Jan 26th, 2020
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.02 KB | None | 0 0
  1. #include<conio.h>
  2. #include<stdio.h>
  3. #include<string.h>
  4. #include<stdlib.h>
  5.  
  6. typedef struct utilaj {
  7.     char *nume;
  8.     int sect, an;
  9.     struct utilaj *urm;
  10. } nod;
  11.  
  12. nod *adauga(nod *p, char *nume, int sec, int an) {
  13.     nod *q;
  14.     q = (nod *) malloc(sizeof(nod));
  15.     q->nume = (char *) malloc(strlen(nume) + 1);
  16.     strcpy(q->nume, nume);
  17.     q->sect = sec;
  18.     q->an = an;
  19.     q->urm = NULL;
  20.     if (q == NULL || q->nume == NULL) {
  21.         printf("ERROR");
  22.         exit(0);
  23.     }
  24.     if (p == NULL)
  25.         return q;
  26.     else {
  27.         q->urm = p;
  28.         return q;
  29.     }
  30. }
  31.  
  32. void afisare(nod *p) {
  33.     nod *q;
  34.     q = p;
  35.     while (q != NULL) {
  36.         printf("\n%s", q->nume);
  37.         printf("\n%d", q->sect);
  38.         printf("\n%d", q->an);
  39.         q = q->urm;
  40.     }
  41. }
  42. void stergere(nod *prim,char *nume){
  43.     nod *q,*prev;
  44.     q=prim;
  45.     if (q != NULL && strcmp(q->nume,nume)==0)
  46.     {
  47.         prim = q->urm;  
  48.         free(q);
  49.         return;
  50.     }
  51.     while (q != NULL && strcmp(q->nume,nume)!=0)
  52.     {
  53.         prev = q;
  54.         q = q->urm;
  55.     }
  56.     if (q == NULL) return;
  57.     free(q);
  58. }
  59.  
  60. int main() {
  61.     int opt, sec, an;
  62.     char nume[20];
  63.     nod *prim = NULL;
  64.     do {
  65.         system("cls");
  66.         printf("\n1.Introducere utilaj");
  67.         printf("\n2.Afisare utilaje");
  68.         printf("\n3.Stergere dupa nume");
  69.         printf("\n4.Iesire\n");
  70.         scanf_s("%d", &opt);
  71.         switch (opt) {
  72.             case 1:
  73.                 printf("\nnume:");
  74.                 scanf("%s", &nume);
  75.                 printf("\nsector: ");
  76.                 scanf("%d", &sec);
  77.                 printf("\nan:");
  78.                 scanf("%d", &an);
  79.                 prim = adauga(prim, nume, sec, an);
  80.                 break;
  81.  
  82.             case 2:
  83.                 afisare(prim);
  84.                 break;
  85.             case 3:
  86.                 printf("\nnume de sters:");
  87.                 scanf("%s",&nume);
  88.                 stergere(prim,nume);
  89.         }
  90.     } while (opt < 4);
  91.     return 0;
  92. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement