Advertisement
jackluciano

Untitled

Nov 27th, 2024
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.29 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. typedef struct ListaElem {
  5.     int adat;
  6.     struct ListaElem* kovetkezo;
  7. } ListaElem;
  8.  
  9. void lista_kiir(ListaElem* fej) {
  10.     ListaElem* aktualis = fej;
  11.     while (aktualis != NULL) {
  12.         printf("%d ", aktualis->adat);
  13.         aktualis = aktualis->kovetkezo;
  14.     }
  15.     printf("\n");
  16. }
  17.  
  18. ListaElem* lista_hozzaad(ListaElem* fej, int adat) {
  19.     ListaElem* uj = (ListaElem*)malloc(sizeof(ListaElem));
  20.     uj->adat = adat;
  21.     uj->kovetkezo = fej;
  22.     return uj;
  23. }
  24.  
  25. ListaElem* lista_index_beszur(ListaElem* fej) {
  26.     ListaElem* uj_fej = NULL;
  27.     ListaElem* aktualis = fej;
  28.     int index = 0;
  29.  
  30.     while (aktualis != NULL) {
  31.         ListaElem* uj = (ListaElem*)malloc(sizeof(ListaElem));
  32.         uj->adat = index++;
  33.         uj->kovetkezo = aktualis;
  34.  
  35.         if (uj_fej == NULL) {
  36.             uj_fej = uj;
  37.         } else {
  38.             ListaElem* temp = uj_fej;
  39.             while (temp->kovetkezo != aktualis) {
  40.                 temp = temp->kovetkezo;
  41.             }
  42.             temp->kovetkezo = uj;
  43.         }
  44.  
  45.         aktualis = aktualis->kovetkezo;
  46.     }
  47.  
  48.     return uj_fej;
  49. }
  50.  
  51. ListaElem* lista_paros_torol(ListaElem* fej) {
  52.     ListaElem* elozo = NULL;
  53.     ListaElem* aktualis = fej;
  54.  
  55.     while (aktualis != NULL) {
  56.         if (aktualis->adat % 2 == 0) {
  57.             if (elozo == NULL) {
  58.                 fej = aktualis->kovetkezo;
  59.             } else {
  60.                 elozo->kovetkezo = aktualis->kovetkezo;
  61.             }
  62.             ListaElem* torlendo = aktualis;
  63.             aktualis = aktualis->kovetkezo;
  64.             free(torlendo);
  65.         } else {
  66.             elozo = aktualis;
  67.             aktualis = aktualis->kovetkezo;
  68.         }
  69.     }
  70.  
  71.     return fej;
  72. }
  73.  
  74. int main() {
  75.     ListaElem* lista = NULL;
  76.     int szam;
  77.  
  78.     while (1) {
  79.         printf("Adjon meg egy szamot (0 a befejezeshez): ");
  80.         scanf("%d", &szam);
  81.         if (szam == 0) {
  82.             break;
  83.         }
  84.         lista = lista_hozzaad(lista, szam);
  85.         lista_kiir(lista);
  86.     }
  87.  
  88.     printf("A lista elemei beszuraskor:\n");
  89.     lista = lista_index_beszur(lista);
  90.     lista_kiir(lista);
  91.  
  92.     printf("A lista elemei paros elemek torlese utan:\n");
  93.     lista = lista_paros_torol(lista);
  94.     lista_kiir(lista);
  95.  
  96.     return 0;
  97. }
  98.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement