Recent post
Pastebin details
  • Unicode support
  • Syntax highlighting
  • Diff
  • Download support
  • Upload support
Posted by idlecode, 18-12-2009 21:20
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. #define MAX_SLOWO_LEN 128
  6. struct lista {
  7.   char slowo[MAX_SLOWO_LEN];
  8.   struct lista *tlumaczenie, *next;
  9. };
  10.  
  11. typedef struct lista l;
  12. l *lista_pl, *lista_en; /* dwa wskazniki poczatkowe list */
  13.  
  14. void dodaj_tlumaczenie(char *slowo_pl, char *slowo_en) {
  15.   l *ostatni_pl, *ostatni_en; /* to wskazniki na nowo utworzone elementy/slowa w obu listach */
  16.   if(!lista_pl) { /* sprawdzaie czy lista_pl istnieje, jesli nie to tworzy nowy element... */
  17.     lista_pl = (l*) malloc(sizeof(l));
  18.     lista_pl->next = NULL;
  19.     ostatni_pl = lista_pl;
  20.   } else { /* ... w innym przypadku tworzy nowy element na koncu */
  21.     while(ostatni_pl->next) /* przewijanie listy do konca (zamiast przewijac mozesz odrazu wstawic na dobre miejsce - nie trzeba by bylo potem sortowac) */
  22.       ostatni_pl = ostatni_pl->next;
  23.     ostatni_pl->next = (l*) malloc(sizeof(l));
  24.     ostatni_pl = ostatni_pl->next;
  25.     ostatni_pl->next = NULL;
  26.   }
  27.  
  28.   if(!lista_en) {
  29.     lista_en = (l*) malloc(sizeof(l));
  30.     lista_en->next = NULL;
  31.     ostatni_en = lista_en;
  32.   } else {
  33.     while(ostatni_pl->next)
  34.       ostatni_en = ostatni_en->next;
  35.     ostatni_en->next = (l*) malloc(sizeof(l));
  36.     ostatni_en = ostatni_en->next;
  37.     ostatni_en->next = NULL;
  38.   }
  39.  
  40.   strncpy(ostatni_pl->slowo, slowo_pl, MAX_SLOWO_LEN); /* kopiowanie slowa podanego funcji do listy */
  41.   strncpy(ostatni_en->slowo, slowo_en, MAX_SLOWO_LEN); /* zostanie skopiowne max MAX_SLOWO_LEN znakow */
  42.  
  43.   ostatni_pl->tlumaczenie = ostatni_en; /* 'przypiecie' tlumaczen do siebie */
  44.   ostatni_en->tlumaczenie = ostatni_pl;
  45. }
  46.  
  47. void wyswietl_tlumaczenia(l* lista) {
  48.   while(lista) {
  49.     printf("%s\t : %s\n", lista->slowo, lista->tlumaczenie->slowo);
  50.     lista = lista->next;
  51.   }
  52. }
  53.  
  54. int main() {
  55.   lista_pl = lista_en = NULL;
  56.  
  57.   dodaj_tlumaczenie("leniwy", "idle");
  58.   dodaj_tlumaczenie("kod", "code");
  59.   dodaj_tlumaczenie("co", "wut");
  60.   wyswietl_tlumaczenia(lista_pl);
  61.   wyswietl_tlumaczenia(lista_en);
  62.  
  63.   return 0;
  64. }
  65.  
Your Name

Remember me

Syntax highlighting
Expire



Source code


Your browser does not support JavaScript. Please, enter this code in that field: ADCACDMPRP:
Upload

Copyright © 2000-2006 by Coyote Group 0.9.3-pre3
Page generation: 0.0210 sek. (sql queries: 6)