Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- struct ListElem
- {
- int value;
- ListElem *next;
- };
- class List
- {
- ListElem *pbeg, *pend;
- ListElem *find_elem(int keyval, ListElem*& prev);
- int Size = 0;
- public:
- List() { pend = pbeg = NULL; }
- int get_Size() { return Size; }
- void push_front(int val);
- int pop_front();
- bool remove(int keyval);
- int top();
- };
- bool List::remove(int keyval)
- {
- ListElem *prem, *prev;
- prem = find_elem(keyval, prev);
- if (!prem)
- return false;
- if (!prev)
- pbeg = pbeg->next;
- else
- prev->next = prem->next;
- if (prem == pend)
- pend = prev;
- delete prem;
- return true;
- }
- ListElem* List::find_elem(int keyval, ListElem*& prev)
- {
- ListElem *pcur = pbeg;
- prev = NULL;
- while (pcur && pcur->value != keyval)
- {
- prev = pcur; pcur = pcur->next;
- }
- return pcur;
- }
- void List::push_front(int val)
- {
- ListElem *pnew = new ListElem;
- pnew->value = val;
- pnew->next = pbeg;
- pbeg = pnew;
- if (!pend)
- pend = pnew;
- Size++;
- }
- int List::pop_front()
- {
- if (!pbeg)
- return -1;
- ListElem *ptr = pbeg;
- int val = pbeg->value;
- pbeg = pbeg->next;
- if (!pbeg) pend = NULL;
- delete ptr;
- return val;
- }
- int main ()
- {
- List lst;
- int number, znach, index, n;
- cin >> n;
- for ( int i = 0; i< n; i++)
- {
- cin >> number;
- lst.push_front(number);
- }
- int dlina = lst.get_Size();
- znach = lst.pop_front();
- lst.remove(znach);
- dlina = dlina - 2;
- int *arr = new int[dlina];
- for (int i = 0; i < dlina; i++)
- arr[i] = lst.pop_front();
- for (int i = dlina - 1; i >= 0; i--)
- cout << arr[i] << " ";
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement