Implementacija stoga pomoću pokazivača


/ Published in: C++
Save to your folder(s)



Copy this code and paste it in your HTML
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. struct tAuto {
  5. int serijski_broj;
  6. char proizvodac[15];
  7. char model[15];
  8. int god_proizvodnje;
  9. };
  10.  
  11. tAuto automobil;
  12.  
  13. struct stog {
  14. tAuto element;
  15. stog *sljedeci;
  16. } *S;
  17.  
  18. stog* InitS(stog *S) {
  19. S = new stog;
  20. S->sljedeci = NULL;
  21. return S;
  22. }
  23.  
  24. bool IsEmptyS(stog *S){
  25. if (S->sljedeci == NULL)
  26. return true;
  27. else
  28. return false;
  29. }
  30.  
  31. tAuto TopS(stog *S) {
  32. if (S->sljedeci == NULL)
  33. cout << "Stog je prazan" << endl;
  34. else {
  35. stog *zadnji;
  36. zadnji = S;
  37. while (zadnji->sljedeci)
  38. zadnji = zadnji->sljedeci;
  39. automobil.god_proizvodnje = zadnji->element.god_proizvodnje;
  40. automobil.serijski_broj = zadnji->element.serijski_broj;
  41. strcpy(automobil.proizvodac, zadnji->element.proizvodac);
  42. strcpy(automobil.model, zadnji->element.model);
  43. return automobil;
  44. }
  45. }
  46.  
  47. void PushS(tAuto x, stog *S) {
  48. stog *zadnji, *novi;
  49. zadnji = S;
  50. while (zadnji->sljedeci)
  51. zadnji = zadnji->sljedeci;
  52. novi = new stog;
  53. zadnji->sljedeci = novi;
  54. novi->sljedeci = NULL;
  55. novi->element.serijski_broj = x.serijski_broj;
  56. novi->element.god_proizvodnje = x.god_proizvodnje;
  57. strcpy(novi->element.proizvodac, x.proizvodac);
  58. strcpy(novi->element.model, x.model);
  59. }
  60.  
  61. void PopS(stog *S){
  62. stog *brisi, *prethodni;
  63. brisi = S->sljedeci;
  64. prethodni = S;
  65. while (brisi) {
  66. if (brisi->sljedeci == NULL){
  67. prethodni->sljedeci = NULL;
  68. delete brisi;
  69. break;
  70. }
  71. prethodni = brisi;
  72. brisi = brisi->sljedeci;
  73. }
  74. }

Report this snippet


Comments

RSS Icon Subscribe to comments

You need to login to post a comment.