Advertisement
Guest User

MSD_4.1

a guest
Oct 28th, 2016
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.09 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3. const int n=3;
  4. struct Stack
  5. {
  6. int A[n];
  7. int count;
  8. };
  9. //создание стека
  10. void Creation(Stack *p)
  11. { p->count=0; }
  12. //проверка стека на пустоту
  13. int Full(Stack *p)
  14. {
  15. if (p->count==0) return 1;
  16. else if (p->count==n) return -1;
  17. else return 0;
  18. }
  19. //добавление элемента
  20. void Add(Stack *p)
  21. {
  22. int value;
  23. cout<<"Введите элемент > "; cin>>value;
  24. p->A[p->count]=value;
  25. p->count++;
  26. }
  27. //удаление элемента
  28. void Delete(Stack *p)
  29. { p->count--; }
  30. //вывод верхнего элемента
  31. int Top(Stack *p)
  32. { return p->A[p->count-1]; }
  33. //размер стека
  34. int Size(Stack *p)
  35. { return p->count; }
  36. //главная функция
  37. void main()
  38. {
  39. setlocale(LC_ALL,"Russian");
  40. Stack s;
  41. Creation(&s);
  42. char number;
  43. do
  44. {
  45. cout<<"1. Добавить элемент"<<endl;
  46. cout<<"2. Удалить элемент"<<endl;
  47. cout<<"3. Вывести верхний элемент"<<endl;
  48. cout<<"4. Узнать размер стека"<<endl;
  49. cout<<"0. Выйти"<<endl;
  50. cout<<"Номер команды > "; cin>>number;
  51. switch (number)
  52. {
  53. case '1':
  54. if (Full(&s)==-1) cout<<endl<<"Стек заполнен\n\n";
  55. else
  56. {
  57. Add(&s);
  58. cout<<endl<<"Элемент добавлен в стек\n\n";
  59. } break;
  60. //-----------------------------------------------
  61. case '2':
  62. if (Full(&s)==1) cout<<endl<<"Стек пуст\n\n";
  63. else
  64. {
  65. Delete(&s);
  66. cout<<endl<<"Элемент удален из стека\n\n";
  67. } break;
  68. //-----------------------------------------------
  69. case '3':
  70. if (Full(&s)==1) cout<<endl<<"Стек пуст\n\n";
  71. else cout<<"\nВерхний элемент: "<<Top(&s)<<"\n\n";
  72. break;
  73. //-----------------------------------------------
  74. case '4':
  75. if (Full(&s)==1) cout<<endl<<"Стек пуст\n\n";
  76. else cout<<"\nРазмер стека: "<<Size(&s)<<"\n\n";
  77. break;
  78. //-----------------------------------------------
  79. case '0': break;
  80. default: cout<<endl<<"Команда не определена\n\n";
  81. break;
  82. }
  83. } while(number!='0');
  84.  
  85. system("pause");
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement