Guest User

Untitled

a guest
Jun 19th, 2018
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.52 KB | None | 0 0
  1. int n=0;//globalna varijabla - broji članove liste
  2.  
  3. struct clan{
  4. int mbr;
  5. char ime[20];
  6. int starost;
  7. };
  8.  
  9. struct list{
  10. clan pacijent;
  11. list *sljedeci;
  12. list *prethodni;
  13. };
  14.  
  15. typedef struct list *plist;
  16.  
  17. list *FirstL(list *L){
  18. list *tekuci=L->sljedeci;
  19. return tekuci;
  20. }
  21.  
  22. list *EndL(list *L){
  23. list *tekuci=L;
  24. while(tekuci->sljedeci!=NULL)
  25. tekuci=tekuci->sljedeci;
  26. return tekuci->sljedeci;
  27. }
  28.  
  29. list *NextL(int p,list *L){
  30. list *tekuci=L;
  31. int i=0;
  32. while(i != p){
  33. tekuci=tekuci->sljedeci;
  34. i++;
  35. }
  36. return tekuci;
  37. }
  38.  
  39. list *PreviousL(int p,list *L){
  40. list *tekuci=L->sljedeci;
  41. int i=1;
  42. while((i+1)!=p){
  43. tekuci=tekuci->sljedeci;
  44. i++;
  45. }
  46. return tekuci;
  47.  
  48. }
  49.  
  50. list *LocateL(int mbr, list *L){
  51. list *tekuci=L;
  52. while((tekuci != NULL) && (tekuci->pacijent.mbr != mbr)){
  53. tekuci=tekuci->sljedeci;
  54. }
  55. return tekuci;
  56. }
  57.  
  58. int InsertL(clan x,int p,list *L){
  59. list *prethodni=L;
  60. int i=1;
  61. while((i)!=(p)){
  62. prethodni=prethodni->sljedeci;
  63. i++;
  64. }
  65. if(prethodni->sljedeci==NULL){
  66. list *novi=new list;
  67. prethodni->sljedeci=novi;
  68. novi->sljedeci=NULL;
  69. novi->prethodni=prethodni;
  70. novi->pacijent=x;
  71. n++;
  72. return 1;
  73. }else{
  74. list *sljedeci=prethodni->sljedeci;
  75. list *novi=new list;
  76. novi->sljedeci=sljedeci;
  77. prethodni->sljedeci=novi;
  78. novi->prethodni=prethodni;
  79. sljedeci->prethodni=novi;
  80. novi->pacijent=x;
  81. n++;
  82. return 1;
  83. }
  84. return 0;
  85. }
  86.  
  87. int DeleteL(int p,list *L){
  88. list *tekuci=L->sljedeci;
  89. list *prethodni=L;
  90. int i=1;
  91. while(i!=p){
  92. prethodni=tekuci;
  93. tekuci=tekuci->sljedeci;
  94. i++;
  95. }
  96. if(tekuci->sljedeci==NULL){
  97. delete tekuci;
  98. prethodni->sljedeci=NULL;
  99. n--;
  100. return 1;
  101. }else{
  102. list *sljedeci=tekuci->sljedeci;
  103. prethodni->sljedeci=sljedeci;
  104. sljedeci->prethodni=prethodni;
  105. delete tekuci;
  106. n--;
  107. return 1;
  108. }
  109. return 0;
  110. }
  111.  
  112. clan RetrieveL(int p,list *L){
  113. list *tekuci=L;
  114. int i=0;
  115. while(i!=p){
  116. tekuci=tekuci->sljedeci;
  117. i++;
  118. }
  119. return tekuci->pacijent;
  120. }
  121.  
  122. void DeleteAllL(list *L){
  123. list *tekuci,*prethodni;
  124. tekuci=L->sljedeci;
  125. if(tekuci->sljedeci==NULL){
  126. delete tekuci;
  127. L->sljedeci=NULL;
  128. n=0;
  129. }else{
  130. prethodni=tekuci;
  131. tekuci=tekuci->sljedeci;
  132. while(tekuci){
  133. delete prethodni;
  134. prethodni=tekuci;
  135. tekuci=tekuci->sljedeci;
  136. }
  137. delete prethodni;
  138. L->sljedeci=NULL;
  139. n=0;
  140. }
  141. }
  142.  
  143. void InitL(list *L){
  144.  
  145.  
  146. L->pacijent.mbr = 0;
  147. L->pacijent.starost = 0;
  148.  
  149. L->sljedeci=NULL;
  150. n=0;
  151. }
  152.  
  153. int mbr(list *L, list *Lst) {
  154. return L->pacijent.mbr;
  155. }
  156.  
  157. char *ime(list *L, list *Lst) {
  158. return L->pacijent.ime;
  159. }
  160.  
  161. int starost(list *L, list *Lst) {
  162. return L->pacijent.starost;
  163. }
Add Comment
Please, Sign In to add comment