Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include<math.h>
- using namespace std;
- class List {
- public:
- int number;
- };
- class OBJ {
- public:
- List b;
- class OBJ* prev, * next;
- };
- OBJ* head = NULL; OBJ* tail = NULL;
- void add_obj(OBJ* obj, List list) {
- OBJ* ptr = new OBJ;
- ptr->b = list;
- ptr->prev = obj;
- ptr->next = (obj == NULL) ? NULL : obj->next;
- if (obj != NULL) {
- obj->next = ptr;
- if (obj->next != NULL) obj->next->prev = ptr;
- }
- if (ptr->prev == NULL) head = ptr;
- if (ptr->next == NULL) tail = ptr;
- }
- void show() {
- OBJ* c = head;
- while (c != NULL) {
- cout << c->b.number << endl;
- c = c->next;
- }
- }
- void reverse(OBJ*& head)
- {
- OBJ* pred = NULL;
- OBJ* current = head;
- while (current != NULL)
- {
- OBJ* next2 = current->next;
- current->next = pred;
- pred = current;
- current = next2;
- }
- head = pred;
- }
- int main() {
- int N = 6;
- setlocale(LC_ALL, "rus");
- List a = { 0 };
- add_obj(tail, a);
- for (int i = 1; i < N; i++) {
- a.number = i;
- add_obj(tail, a);
- }
- show();
- reverse(head);
- show ();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement