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);
- int Size = 0;
- public:
- List() { pend = pbeg = NULL; }
- int get_Size() { return Size; }
- void push_front(int val);
- int pop_front();
- bool insert(int val, int znach);
- int top();
- };
- ListElem* List::find_elem(int keyval)
- {
- ListElem *pcur = pbeg;
- int shet = 0;
- for (; pcur; pcur = pcur->next)
- {
- shet++;
- if (shet == keyval)
- goto printl;
- }
- printl:
- return pcur;
- }
- bool List::insert(int val, int znach)
- {
- ListElem *ptr = find_elem(val);
- if (!ptr) return false;
- ListElem *pnew = new ListElem;
- pnew->value = znach;
- pnew->next = ptr->next;
- ptr->next = pnew;
- return true;
- }
- 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++)
- while (cin >> number)
- lst.push_front(number);
- int dlina = lst.get_Size();
- index = dlina - lst.pop_front() - 1;
- znach = lst.pop_front();
- if (index == 0)
- lst.push_front(znach);
- else
- lst.insert(index, znach);
- dlina--;
- 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