Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- struct list {
- int data;
- list* next;
- };
- struct st {
- list* up, * down;
- st* next;
- };
- list* t1, * p1, * t2, * p2;
- st* s, * t, * p;
- int main() {
- int n=1, a, c;
- cout << "Enter a list item\n->";
- cin >> a;
- if (a == 0)
- cout << "list pust" << endl;
- else {
- /*Ввод элементов списка*/
- while (a)
- {
- t = new st;
- t->up = 0; t->next = 0; t->down = 0;
- /*Заполнение верхнего спика*/
- t1 = new list;
- t1->next = 0;
- t1->data = a;
- t->up = t1;
- if (s == 0) s = t; //голова спискa
- else {
- p->next = t;
- p1->next = t1;
- }
- cin >> a;
- n++;
- if (a != 0)
- {
- /*Заполнение нижнего спика*/
- t2 = new list;
- t2->next = 0;
- t2->data = a;
- t->down = t2;
- if (n != 2) p2->next = t2;
- p = t;
- p2 = t2;
- p1 = t1;
- cin >> a;
- }
- }
- }
- p->next = s; //присваивание последнему листу в среднем списке указатель на голову списка
- /*Ввод управления*/
- cout << "Where to go? up(1), down(2), next(3), the end(0)\n->";
- cin >> c;
- p1 = 0; p2 = 0; p = s; n = 0;
- while (c != 0) {
- switch (c) {
- case 1:
- if (n == 0) {
- if (p->up != 0) {
- cout << "up\n";
- p1 = p->up;
- }
- else cout << "Up is empty\n";
- n = 1;
- }
- else cout << " No up\n";
- break;
- case 2:
- if (n == 0)
- {
- if (p->down != 0)
- {
- cout << "down\n";
- p2 = p->down;
- }
- else cout << "Down is empty\n";
- n = 2;
- }
- else
- cout << " No Down\n";
- break;
- case 3:
- if (n == 0) {
- if (p != 0) {
- cout << "next\n";
- p = p->next;
- }
- else cout << "Next is empty\n";
- }
- if (n == 1) {
- if (p1 != 0) {
- cout << p1->data << endl;
- p1 = p1->next;
- }
- else cout << "Next is empty\n";
- }
- if (n == 2) {
- if (p2 != 0) {
- cout << p2->data << endl;
- p2 = p2->next;
- }
- else cout << "Next is empty\n";
- }
- break;
- }
- cout << "->";
- cin >> c;
- }
- cout << "The program has finished working" << endl;
- return 0;
- }
Add Comment
Please, Sign In to add comment