Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2018
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.34 KB | None | 0 0
  1. #include<iostream>
  2. using namespace std;
  3. struct el_LIFO
  4. {
  5. int x;
  6. struct el_LIFO* nast;
  7. };
  8. struct el_LIFO* push(struct el_LIFO *top, int el)
  9. {
  10. //dodanie elementu na stos
  11. // wartość elementu dodawanego jest w zmiennej el,
  12. //wskaźnik na wierzchołek stosu jest w zmiennej top
  13. //wynikiem funkcji jest wskaźnik na nowy wierzchołek stosu
  14. struct el_LIFO * new_el_LIFO=new struct el_LIFO;
  15. new_el_LIFO->x=el;
  16. new_el_LIFO->nast=top;
  17. return new_el_LIFO;
  18. }
  19. struct el_LIFO* pop(struct el_LIFO *top, int *el)
  20. {
  21. //zdjęcie elementu ze stos
  22. // wartość zdjętego elementu jest w zmiennej wskaźnikowej el,
  23. //wskaźnik na wierzchołek stosu jest w zmiennej top
  24. //wynikiem funkcji jest wskaźnik na nowy wierzchołek stosu
  25. struct el_LIFO * temp;
  26. if(top!=NULL){
  27. *el=top->x;
  28. temp=top->nast;
  29. // free(top);
  30. return temp;
  31. }
  32. else {return NULL;}
  33. }
  34. int top_el(struct el_LIFO *top, int *el){
  35. // funkcja zwracająca element wierzchołkowy stosu, o ile taki istnieje
  36. // wartość elementu wierzchołkowego jest w zmiennej wskaźnikowej el,
  37. //wskaźnik na wierzchołek stosu jest w zmiennej top
  38. //wynikiem funkcji jest wartość 1, gdy stos nie jest pusty i 0 w przeciwnym wypadku
  39. if (top!=NULL)
  40. {
  41. *el=top->x;
  42. return 1;
  43. }
  44. else { return 0;}
  45. }
  46. int main()
  47. {
  48. struct el_LIFO *top_LIFO=NULL;
  49.  
  50.  
  51. int t,d;
  52. // if (top_el(top_LIFO,&t)) printf("wierzcholek: %d\n",top_LIFO->x);
  53. //else printf("Stos pusty.\n");
  54.  
  55.  
  56. // printf("usunieto: %d\n",d);
  57. //if (top_el(top_LIFO,&t)) printf("wierzcholek: %d\n",top_LIFO->x);
  58. //else printf("Stos pusty.\n");
  59.  
  60.  
  61. int opcja,liczba;
  62. for(;;)
  63. {
  64. cout<<"\n2.Dodawanie elementu.\n";
  65. cout<<"\n3.Zdejmowanie elementu.\n";
  66. cout<<"\n4.Pokaz wierzcholek stosu.\n";
  67. cout<<"\n5.Pokaz stos.\n";
  68. cout<<"\n6.Koniec programu.\n";
  69.  
  70. cin>>opcja;
  71. switch(opcja)
  72. {
  73. case 1:
  74. {
  75. }
  76. case 2:
  77. { cout<<"\nJaki element chcesz dodac: ";
  78. cin>>liczba;
  79. top_LIFO=push(top_LIFO,liczba);
  80. break;
  81.  
  82. }
  83. case 3:
  84. { cout<<"\n Zdjeto element ze stosu\n";
  85. if (top_LIFO==NULL) cout<<"stos pusty"<<endl;
  86. else top_LIFO=pop(top_LIFO,&d);
  87.  
  88. break;
  89. }
  90. case 4:
  91. {
  92. if (top_el(top_LIFO,&t))
  93. cout<<top_LIFO->x<<endl;
  94. else
  95. cout<<"Stos pusty.\n";
  96.  
  97. break;
  98. }
  99.  
  100.  
  101. }
  102. }
  103. return 0;
  104. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement