Advertisement
Guest User

Untitled

a guest
Jan 17th, 2017
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.45 KB | None | 0 0
  1. oid add(lista **poz, kontakt nowa)
  2. {
  3. kontakt contact1;
  4. lista *poz = (lista*)calloc(1, sizeof(lista));
  5. if (poz == NULL)
  6. return;
  7. if ((*poz) == NULL)
  8. (*poz) = (lista*)malloc(sizeof(lista));
  9. *poz = (*poz)->next;
  10. else
  11. {
  12. ((*poz)->next) = (lista*)malloc(sizeof(lista));
  13. if ((*poz)->next == NULL)
  14. return;
  15. }
  16.  
  17. poz->dane = nowa;
  18. poz->next = *poz;
  19. if (*poz != NULL)
  20. {
  21. if ((*poz)->prev != NULL) (*poz)->prev->dane = nowa;
  22. poz->prev = (*poz)->prev;
  23. (*poz)->prev = poz;
  24. }
  25. *poz = poz;
  26.  
  27. printf("Podaj Imie: ");
  28. scanf("%s", contact1.imie);
  29. printf("Podaj Nazwisko: ");
  30. scanf("%s", contact1.nazwisko);
  31. printf("Podaj numer: ");
  32. scanf("%s", contact1.numer);
  33. printf("Podaj grupe: ");
  34. scanf("%s", contact1.grupa);
  35. printf("\n");
  36. }
  37. // funkcja usuwajaca kontakt
  38. // poz - podwojny wskaznik na element listy
  39. void usun(lista **poz)
  40. {
  41. lista *poz;
  42. if (*poz == NULL) return;
  43. if ((*poz)->next == NULL && (*poz)->prev == NULL)
  44. {
  45. *poz = NULL;
  46. return;
  47. }
  48. poz = *poz;
  49. if ((*poz)->next != NULL)
  50. (*poz)->next->prev = (*poz)->prev;
  51. if ((*poz)->prev != NULL)
  52. (*poz)->prev->next = (*poz)->next;
  53. if ((*poz)->next != NULL)
  54. *poz = (*poz)->next;
  55. else if ((*poz)->prev != NULL)
  56. *poz = (*poz)->prev;
  57. free(poz);
  58.  
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement