Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdafx.h"
- #include <iostream>
- using namespace std;
- struct elem { //структура на стек
- int data;
- elem *next;
- }*head = NULL, *tail = NULL, *pointer;
- void push(int number);
- int pop(int &number);
- void main()
- {
- int firstElement = 0;
- int brojElementi = 0;
- while (true)
- {
- cout << "Broj elementi: ";
- cin >> brojElementi;
- if (brojElementi < 1) {
- cout << "Nevaliden broj.";
- }
- break;
- }
- //въвеждане на елементите:
- for (int i = 0; i < brojElementi; i++)
- {
- if (i == 0) {
- cin >> firstElement;
- push(firstElement);
- }
- else {
- int number;
- cin >> number;
- push(number);
- }
- }
- int A = 0;
- int N;
- cout << "N = ";
- cin >> N;
- //махане на последните елементи
- for (int i = 0; i < N; i++)
- {
- pop(A);
- }
- cout << "A = " << A << endl;
- int printNum = 0;
- int filler;
- //извеждане на съдържанието. (като махаме елементи и принтираме махнатия елемент)
- while (head->next)
- {
- cout << head->data << "\t";
- head = head->next;
- }
- //и за последния
- cout << head->data;
- }
- void push(int number) //добавя елемент отдясно
- {
- pointer = tail;
- tail = new elem;
- tail->data = number;
- tail->next = NULL;
- if (head == NULL)
- head = tail;
- else
- pointer->next = tail;
- }
- int pop(int &number)
- {
- if (tail)
- {
- number = tail->data;
- if (head == tail)
- {
- delete tail;
- head = tail = NULL;
- }
- pointer = head;
- while (pointer->next != tail)
- pointer = pointer->next;
- pointer->next = NULL;
- delete tail;
- tail = pointer;
- return 0;
- }
- else
- return 0;
- }
Add Comment
Please, Sign In to add comment