Posted By

barrogar on 10/24/10


Tagged


Versions (?)

Sp zadatak 1 pokazivaci, Barbara Rogar


 / Published in: C++
 

  1. struct tpacijent {
  2. int mb;
  3. char ime[30];
  4. int godine;
  5. } pacijent;
  6.  
  7. struct list {
  8. int mb;
  9. char ime[30];
  10. int godine;
  11. list* next;
  12. };
  13.  
  14. typedef list* element;
  15.  
  16. element EndL (list* L) {
  17. list* tekuci = L;
  18. while (tekuci->next)
  19. tekuci = tekuci->next;
  20. return tekuci;
  21. };
  22.  
  23. element FirstL (list* L) {
  24. if (L->next)
  25. return L;
  26. else
  27. return EndL(L);
  28. };
  29.  
  30. element NextL (element p, list* L) {
  31. if (p->next)
  32. return p->next;
  33. else
  34. return EndL(L);
  35. };
  36.  
  37. element PreviousL (element p, list* L) {
  38. if (p == FirstL(L))
  39. return 0;
  40. list* tekuci = L;
  41. while(tekuci->next) {
  42. if (tekuci->next == p)
  43. return tekuci;
  44. tekuci = tekuci->next;
  45. }
  46. };
  47.  
  48. element LocateL (tpacijent x, list* L) {
  49. list* tekuci = L;
  50. while (tekuci){
  51. if(tekuci->next && tekuci->next->mb == x.mb)
  52. return tekuci;
  53. tekuci = tekuci->next;
  54. }
  55. return EndL(L);
  56. };
  57.  
  58. int InsertL (tpacijent x, element p, list* L) {
  59. if (p) {
  60. list* novi = new list;
  61. novi->mb = x.mb;
  62. strcpy(novi->ime, x.ime);
  63. novi->godine = x.godine;
  64. novi->next = NULL;
  65. if (p->next){
  66. novi->next = p->next;
  67. }
  68. p->next = novi;
  69. return 1;
  70. }
  71. else
  72. return 0;
  73. };
  74.  
  75. int DeleteL(element p, list* L) {
  76. if (p && p->next) {
  77. list* pom = p->next;
  78. p->next = p->next->next;
  79. delete pom;
  80. return 1;
  81. }
  82. else
  83. return 0;
  84. };
  85.  
  86. tpacijent RetrieveL(element p, list* L) {
  87. if (p && p->next) {
  88. pacijent.mb = p->next->mb;
  89. strcpy (pacijent.ime, p->next->ime);
  90. pacijent.godine = p->next->godine;
  91. return pacijent;
  92. }
  93. };
  94.  
  95. void DeleteAllL(list* L) {
  96. list *pok = L->next;
  97. list *tekuci;
  98. while (pok) {
  99. tekuci = pok;
  100. pok = pok->next;
  101. delete tekuci;
  102. }
  103. };
  104.  
  105. list* InitL(list* L) {
  106. L = new list;
  107. L->next = NULL;
  108. return L;
  109. };

Report this snippet  

You need to login to post a comment.