podataka-Zadatakïu 1-Listaïu pokazivač结构

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了podataka-Zadatakïu 1-Listaïu pokazivač结构相关的知识,希望对你有一定的参考价值。

Lista pokazivači u službi glavnog programa "Životinjska farma"
  1. struct tdate {
  2. int d,y;
  3. char m[25];
  4. };
  5.  
  6. struct elem {
  7. int sifra;
  8. char vrsta[50],naziv[50];
  9. tdate date;
  10. float cijena;
  11. };
  12.  
  13. struct lis {
  14. elem zivotinja;
  15. lis *sljedeci;
  16. };
  17.  
  18. lis *list=new lis;
  19. int sifra=1,br_elem=0,v=0;
  20.  
  21. void InitL(lis *lista) {
  22. lista->sljedeci=NULL;
  23. }
  24.  
  25. void InsertL(elem x,int p,lis *lista) {
  26. lis *zadnji=lista;
  27. for(int i=0;i<p;i++) zadnji=zadnji->sljedeci;
  28.  
  29. lis *novi = new lis;
  30. zadnji->sljedeci=novi;
  31. novi->zivotinja=x;
  32. novi->sljedeci=NULL;
  33. }
  34.  
  35. elem RetrieveL(int p,lis* lista) {
  36. lis *tekuci = lista->sljedeci;
  37. for(int i=0;i<p;i++) tekuci=tekuci->sljedeci;
  38. return tekuci->zivotinja;
  39. }
  40.  
  41. int EndL(lis *lista) {
  42. lis* tekuci=lista;
  43. int p=0;
  44. while(tekuci->sljedeci) {
  45. tekuci=tekuci->sljedeci;
  46. p++;
  47. }
  48. return p;
  49. }
  50.  
  51. void DeleteL(int p, lis *lista) {
  52. lis *brisi = lista->sljedeci,*prethodni=lista;
  53. for(int i=0;i<p;i++) {
  54. prethodni=brisi;
  55. brisi=brisi->sljedeci;
  56. }
  57. prethodni->sljedeci=brisi->sljedeci;
  58. delete brisi;
  59. }
  60.  
  61. int LocateL(char x[],lis* lista) {
  62. lis *tekuci=lista;
  63. int p=0;
  64. while(tekuci) {
  65. if(tekuci->sljedeci==NULL) return EndL(lista);
  66. if(!strcmp((tekuci->sljedeci)->zivotinja.naziv,x)||(v==1&&!strcmp((tekuci->sljedeci)->zivotinja.vrsta,x))) return p;
  67. tekuci=tekuci->sljedeci;
  68. p++;
  69. }
  70. return EndL(lista);
  71. }
  72.  
  73. int FirstL(lis* lista) {
  74. if(lista->sljedeci==NULL) return EndL(lista);
  75. return 0;
  76. }
  77.  
  78. int PreviousL(int p,lis* lista) {
  79. if(p==FirstL(lista)) return -1;
  80. return p-1;
  81. }
  82.  
  83. int NextL(int p,lis* lista) {
  84. if(p==EndL(lista)) return -1;
  85. if(p==PreviousL(EndL(lista),lista)) return EndL(lista);
  86. return p+1;
  87. }
  88.  
  89. void DeleteAll(lis* lista) {
  90. lis* prethodni=lista,*tekuci=lista->sljedeci;
  91. while(tekuci) {
  92. delete prethodni;
  93. prethodni=tekuci;
  94. tekuci=tekuci->sljedeci;
  95. }
  96.  
  97. delete prethodni;
  98. lista=NULL;
  99. }
  100.  
  101.  
  102. void Return(elem x,int p, lis* lista) {
  103. lis* tekuci=lista->sljedeci;
  104. for(int i=0;i<p;i++) tekuci=tekuci->sljedeci;
  105. tekuci->zivotinja=x;
  106. }

以上是关于podataka-Zadatakïu 1-Listaïu pokazivač结构的主要内容,如果未能解决你的问题,请参考以下文章

zadatakïu 3ïu结构ïu podataka

Zadatakïu 4ïu结构

用空格替换 Unicode 字符“�”

Apache 2.0的modïu deflate

podataka-Zadatak2结构

C++ 奇怪的文件输出