Posted By

lblazekfoihr on 11/12/12


Tagged

deletel initl endl locatel insertl FirstL NextL PreviousL DeleteAll RetriveL


Versions (?)

lista_polje


 / Published in: C++
 

Druga implementacija programa je preko implementacija preko polja.

  1. #include <string>
  2. using namespace std;
  3.  
  4. struct zivotinja {
  5. int sifra;
  6. string vrsta;
  7. string naziv;
  8. int cijena;
  9. string datum;
  10. };
  11. struct List {
  12. zivotinja p[10000];
  13. int kursor;
  14. };
  15. typedef List Lista;
  16. typedef int element;
  17. void InitL(Lista *l) {
  18. l->kursor = 0;
  19. for (int i = 0; i < 10000; i++) {
  20. l->p[i].sifra = 0;
  21. }}
  22. element EndL(Lista *l) {
  23. return l->kursor;
  24. }
  25. element FirstL(Lista *l) {
  26. return 0;
  27. }
  28. element NextL(element e, Lista *l) {
  29. if (e >= l->kursor) {
  30. return -1;
  31. }
  32. else {
  33. return e +1;
  34. }}
  35. element PreviousL(element e, Lista *l) {
  36. if (e <= l->kursor && e > 0) {
  37. return e -1;
  38. }
  39. else {
  40. return -1;
  41. }}
  42. element LocateL(zivotinja ziv, Lista *l) {
  43. for (int i = 0; i < 10000; i++) {
  44. if (l->p[i].sifra == ziv.sifra) {
  45. return i;
  46. }}
  47. return -1;
  48. }
  49. bool InsertL(zivotinja nova, element e , Lista *l) {
  50. if (l->kursor == 10000) {
  51. return false;
  52. }
  53. for (int i = l->kursor; i > e; i--) {
  54. l->p[i] = l->p[i-1];
  55. }
  56. l->p[e] = nova;
  57. l->kursor++;
  58. return true;
  59. }
  60. bool DeleteL(element e, Lista *l) {
  61. if (l->kursor == 0 || e >= l->kursor) {
  62. return false;
  63. }
  64. l->kursor--;
  65. for (int i = e; i < l->kursor; i++) {
  66. l->p[i] = l->p[i+1];
  67. }
  68. return true;
  69. }
  70. zivotinja RetrieveL(element e, Lista *l) {
  71. return l->p[e];
  72. }
  73. void DeleteAll(Lista *l) {
  74. l->kursor = 0;
  75. }

Report this snippet  

You need to login to post a comment.