Posted By

izavrski2 on 11/12/12


Tagged

list deletel initl endl locatel retrievel insertl FirstL NextL PreviousL DeleteAll


Versions (?)

Datoteka zaglavlja - lista_polje.h


 / Published in: C++
 

U ovoj biblioteci su definirane standardne funkcije za operacije nad listom (FirstL, EndL, NextL, PreviousL, LocateL, InsertL, DeleteL, RetrieveL, DeleteAll i InitL). Te se funkcije pozivaju u glavnom programu po potrebi. Koristi se polje pomoću kojeg se implementira tzv. vezana lista.

  1. struct List {
  2. podaci value[1000];
  3. int cursor;
  4. };
  5.  
  6. typedef List Lista;
  7. typedef int element;
  8.  
  9. element FirstL(Lista *L) {
  10. return 0;
  11. }
  12.  
  13. element EndL(Lista *L) {
  14. return L->cursor;
  15. }
  16.  
  17. element NextL(element P, Lista *L) {
  18. return P+1;
  19. }
  20.  
  21. element PreviousL(element P, Lista *L) {
  22. return P-1;
  23. }
  24.  
  25. element LocateL(podaci X, Lista *L) {
  26. int i = 0;
  27. while (i < L->cursor) {
  28. if (L->value[i].sifra == X.sifra) {
  29. return i;
  30. i++;
  31. }
  32. }
  33. }
  34.  
  35. bool InsertL(podaci X, element P, Lista *L) {
  36.  
  37. if (L->cursor == 1000) {
  38. return false;
  39. }
  40.  
  41. for (int i = L->cursor-1; i >= P; i--) {
  42. L->value[i+1] = L->value[i];
  43. }
  44.  
  45. L->value[P] = X;
  46. L->cursor += 1;
  47. return true;
  48. }
  49.  
  50. void DeleteL(element P, Lista *L) {
  51.  
  52. for (int i = P; i < L->cursor; i++) {
  53. L->value[i] = L->value[i+1];
  54. }
  55. L->cursor -= 1;
  56. }
  57.  
  58. podaci RetrieveL(element P, Lista *L) {
  59. return L->value[P];
  60. }
  61.  
  62.  
  63. void DeleteAll(Lista *L){
  64. L->cursor = 0;
  65. }
  66.  
  67. void InitL(Lista *L) {
  68. L->cursor = 0;
  69. }

Report this snippet  

You need to login to post a comment.