Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<climits>
- #include<list>
- #include<fstream>
- using namespace std;
- ifstream in("input.txt");
- ofstream out("output.txt");
- class Stack
- {
- struct Element{
- int inf;
- Element *next;
- Element(int x, Element *p) : inf(x), next(p) {}
- };
- Element *head; //указатель на вершину стека
- public:
- Stack() : head(0) {}
- bool Empty() {
- return head == 0;
- }
- int Pop(){
- if (Empty()){
- return 0;
- }
- Element *r = head; //иначе запоминаем указатель на вершину стека
- int i = r->inf; //запоминаем информацию из верхнего элемента
- head = r->next; //передвигаем указатель стека на следующий от вершины элемент
- delete r; //освобождаем память, на которую указывает r
- return i; //возвращаем значение
- }
- void Push(int data){
- head = new Element(data, head);
- }
- int Top() //просмотреть элемент на вершине стека
- {
- if (Empty()) //если стек пуст, то возвращаем 0
- {
- return 0;
- }
- else //иначе возвращаем информацию из вершины стека
- {
- return head->inf;
- }
- }
- };
- int main() {
- Stack s1;
- Stack s2;
- int value;
- int min = INT_MAX;
- while (in >> value) {
- if (value < min)
- min = value;
- s1.Push(value);
- }
- while (!s1.Empty()) {
- int cur;
- cur = s1.Top();
- s1.Pop();
- if (cur != min)
- s2.Push(cur);
- }
- while (!s2.Empty()) {
- out << s2.Top() << " ";
- s2.Pop();
- }
- in.close();
- out.close();
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement