Phoenix_x

Untitled

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