Advertisement
Guest User

Untitled

a guest
Jun 28th, 2017
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.32 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. typedef struct _konyvtar {
  6. char szerzo[50];
  7. char cim[50];
  8. int evszam;
  9. struct _konyvtar *kov;
  10. } Konyvek;
  11.  
  12. Konyvek *elejere_beszur(Konyvek *lista, Konyvek e){
  13. Konyvek *temp;
  14. temp=malloc(sizeof(Konyvek));
  15. /* bemasoljuk az adatokat.*/
  16. *temp=e;
  17. /* ennek a kov mutatoja az eddigi lista eleje */
  18. temp->kov=lista;
  19. /* a lista eleje pedig innentol kezdve erre mutat. */
  20. lista=temp;
  21. return lista; /* visszaadjuk a hivonak */
  22. }
  23.  
  24. void vegehez_fuz(Konyvek **lista, Konyvek e){
  25. Konyvek *temp;
  26. temp=malloc(sizeof(Konyvek));
  27. *temp=e;
  28. temp->kov=NULL; /* ez biztos, mert utolso elem lesz. */
  29. if (*lista==NULL) {
  30. /* mert ha ures, akkor a lista eleje pointer is valtozik. */
  31. *lista=temp;
  32. } else {
  33. /* ha nem, akkor meg kell keresnunk az utolso elemet */
  34. Konyvek *futo;
  35.  
  36. futo=*lista;
  37. while (futo->kov!=NULL) /* ha nem NULL, van meg elem */
  38. futo=futo->kov;
  39. /* megtalaltuk az utolsot - annak a pointere mostantol erre. */
  40. futo->kov=temp;
  41. }
  42. }
  43.  
  44. void kiir(Konyvek *lista)
  45. {
  46. Konyvek *futo;
  47.  
  48. futo=lista;
  49. while (futo!=NULL) {
  50. printf("%s %d\n", futo->cim, futo->evszam);
  51. futo=futo->kov;
  52. }
  53. }
  54.  
  55. void felszabadit(Konyvek *lista)
  56. {
  57. Konyvek *futo;
  58.  
  59. futo=lista;
  60. while (futo!=NULL) {
  61. Konyvek *kov;
  62.  
  63. kov=futo->kov; /* elmentjuk */
  64. free(futo); /* felszabaditjuk */
  65. futo=kov; /* elmentett pointer */
  66. }
  67. }
  68.  
  69. int main()
  70. {
  71. Konyvek e;
  72. Konyvek *lista=NULL;
  73.  
  74. /* A LISTA ELEJERE szurjuk be ennek a masolatat */
  75. strcpy(e.cim, "Prog 1 Nagy ZH");
  76. e.evszam=2009;
  77. /* ez a fuggveny visszaadja az esetleg megvaltozott */
  78. /* lista eleje mutatot. a mi felelossegunk az ertekadas! */
  79. lista=elejere_beszur(lista, e);
  80.  
  81. /* A LISTA VEGEHEZ FUZZUK ennek a masolatat */
  82. strcpy(e.cim, "Prog 1 PZH");
  83. e.evszam=2009;
  84. /* itt meg mindig ki kell irni a cimkepzest */
  85. vegehez_fuz(&lista, e);
  86.  
  87. /* MINDEN ELEMET KIIRUNK */
  88. kiir(lista);
  89.  
  90. /* MINDEN ELEMET FELSZABADITUNK */
  91. felszabadit(lista);
  92. lista=NULL;
  93.  
  94. return 0;
  95. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement