Phoenix_x

Untitled

Apr 2nd, 2018
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.73 KB | None | 0 0
  1. #include "stdafx.h"
  2. #include <iostream>
  3.  
  4. using namespace std;
  5.  
  6. struct elem { //структура на стек
  7.     int data;
  8.     elem *next;
  9. }*head = NULL, *tail = NULL, *pointer;
  10.  
  11.  
  12. void push(int number);
  13. int pop(int &number);
  14.  
  15.  
  16. void main()
  17. {
  18.     int firstElement = 0;
  19.     int brojElementi = 0;
  20.  
  21.     while (true)
  22.     {
  23.         cout << "Broj elementi: ";
  24.         cin >> brojElementi;
  25.  
  26.         if (brojElementi < 1) {
  27.             cout << "Nevaliden broj.";
  28.         }
  29.         break;
  30.     }
  31.  
  32.     //въвеждане на елементите:
  33.     for (int i = 0; i < brojElementi; i++)
  34.     {
  35.         if (i == 0) {
  36.             cin >> firstElement;
  37.             push(firstElement);
  38.         }
  39.         else {
  40.             int number;
  41.             cin >> number;
  42.             push(number);
  43.         }
  44.     }
  45.  
  46.     int A = 0;
  47.  
  48.     int N;
  49.     cout << "N = ";
  50.     cin >> N;
  51.  
  52.     //махане на последните елементи
  53.     for (int i = 0; i < N; i++)
  54.     {
  55.         pop(A);
  56.     }
  57.  
  58.     cout << "A = " << A << endl;
  59.  
  60.     int printNum = 0;
  61.     int filler;
  62.  
  63.     //извеждане на съдържанието. (като махаме елементи и принтираме махнатия елемент)
  64.     while (head->next)
  65.     {
  66.         cout << head->data << "\t";
  67.         head = head->next;
  68.     }
  69.     //и за последния
  70.     cout << head->data;
  71. }
  72.  
  73. void push(int number) //добавя елемент отдясно
  74. {
  75.     pointer = tail;
  76.     tail = new elem;
  77.     tail->data = number;
  78.     tail->next = NULL;
  79.     if (head == NULL)
  80.         head = tail;
  81.     else
  82.         pointer->next = tail;
  83. }
  84.  
  85. int pop(int &number)
  86. {
  87.     if (tail)
  88.     {
  89.         number = tail->data;
  90.         if (head == tail)
  91.         {
  92.             delete tail;
  93.             head = tail = NULL;
  94.         }
  95.         pointer = head;
  96.         while (pointer->next != tail)
  97.             pointer = pointer->next;
  98.         pointer->next = NULL;
  99.         delete tail;
  100.         tail = pointer;
  101.         return 0;
  102.     }
  103.     else
  104.         return 0;
  105. }
Add Comment
Please, Sign In to add comment