Advertisement
Motocelium

Coada_prioritati

Nov 22nd, 2024
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.53 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. typedef struct NOD{
  6.     char nume[30], prenume[30], sex;
  7.     int prioritate, varsta;
  8.     struct NOD *next;
  9. }NOD;
  10.  
  11. NOD *creare_nod(){
  12.     NOD *nod_nou = malloc(sizeof(NOD));
  13.     scanf("%s %s %d %c %d", nod_nou->nume, nod_nou->prenume, &nod_nou->varsta, &nod_nou->sex, &nod_nou->prioritate);
  14.     nod_nou -> next = NULL;
  15.     getchar();
  16.     return nod_nou;
  17. }
  18.  
  19. NOD *adauga_persoana(NOD *head){
  20.     NOD *nod_nou = creare_nod(), *nod_curent = head;
  21.    
  22.     if(head == NULL){
  23.         head = nod_nou;
  24.         return head;
  25.     }
  26.     if(nod_nou -> prioritate < nod_curent -> prioritate){
  27.         nod_nou -> next = head, head = nod_nou;
  28.         return head;
  29.     }
  30.     else{
  31.         for(; nod_curent -> next && nod_curent ->next->prioritate < nod_nou -> prioritate; nod_curent = nod_curent -> next);
  32.         nod_nou -> next = nod_curent -> next;
  33.         nod_curent -> next = nod_nou;
  34.         return head;
  35.     }
  36. }
  37.  
  38. NOD *extragere(NOD *head){
  39.     NOD *nod = head->next;
  40.    
  41.     printf("%s %s %d %c\n", head -> nume, head -> prenume, head -> varsta, head -> sex);
  42.     free(head);
  43.     return nod;
  44. }
  45.  
  46. int main(){
  47.     char comanda;
  48.     NOD *lista_prioritate = NULL;
  49.    
  50.     while((comanda = getchar()) != '*'){
  51.         if(comanda == '+'){
  52.             getchar();
  53.             lista_prioritate = adauga_persoana(lista_prioritate);
  54.         }
  55.         else{
  56.             lista_prioritate = extragere(lista_prioritate);
  57.             getchar();
  58.         }
  59.     }
  60.     return 0;
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement