Advertisement
Guest User

Untitled

a guest
Dec 14th, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.77 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. typedef struct Megallo {
  6.     char nev[60+1];
  7.     struct Megallo *kov;
  8. } Megallo;
  9.  
  10. Megallo *vegere(Megallo *lista, char const *ujnev) {
  11.     Megallo *uj = (Megallo*) malloc(sizeof(Megallo));
  12.     strcpy(uj->nev, ujnev);
  13.     uj->kov = NULL;
  14.     if (lista == NULL) {
  15.         lista = uj;
  16.     } else {
  17.         Megallo *utolso;
  18.         for (utolso = lista; utolso->kov != NULL; utolso = utolso->kov)
  19.             ;
  20.         utolso->kov = uj;
  21.     }
  22.     return lista;
  23. }
  24.  
  25. Megallo *jarat_beolvas(char const *fajlnev) {
  26.     FILE *fp = fopen(fajlnev, "rt");
  27.     if (fp == NULL)
  28.         return NULL;
  29.     char megallo[60+1];
  30.     Megallo *jarat = NULL;
  31.     while (fscanf(fp, " %[^\n]", megallo) != EOF)
  32.         jarat = vegere(jarat, megallo);
  33.     fclose(fp);
  34.     return jarat;
  35. }
  36.  
  37. void felszabadit(Megallo *lista) {
  38.     while (lista != NULL) {
  39.         Megallo *kov = lista->kov;
  40.         free(lista);
  41.         lista = kov;
  42.     }
  43. }
  44.  
  45. char const *hol_van_kozos(Megallo *j1, Megallo *j2) {
  46.     for (Megallo *it1 = j1; it1 != NULL; it1 = it1->kov)
  47.         for (Megallo *it2 = j2; it2 != NULL; it2 = it2->kov)
  48.             if (strcmp(it1->nev, it2->nev) == 0)
  49.                 return it1->nev;
  50.     return NULL;
  51. }
  52.  
  53. int main(void) {
  54.     Megallo *j1, *j2;
  55.     j1 = jarat_beolvas("7E.txt");
  56.     j2 = jarat_beolvas("M3.txt");
  57.     if (j1 == NULL || j2 == NULL) {
  58.         printf("Nem sikerült beolvasni valamelyik járatot\n");
  59.     } else {
  60.         char const *atszallas = hol_van_kozos(j1, j2);
  61.         if (atszallas == NULL)
  62.             printf("Nincs közös megálló\n");
  63.         else
  64.             printf("A közös megálló: %s\n", atszallas);
  65.     }
  66.     felszabadit(j1);
  67.     felszabadit(j2);
  68.     return 0;
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement