объединение двух связанных списков, в которых узлы не соединяются друг с другом? - PullRequest
0 голосов
/ 09 марта 2020

пожалуйста, посмотрите, я слишком запутался, потому что не могу найти ошибку. здесь я думаю, что мои узлы не связаны друг с другом. я не знаю почему? я получаю вывод 678 вместо 12345678 .

** # включить использование пространства имен std; узел класса {publi c: int data; узел * следующий; void create (int *, int); void create2 (int *, int); пустое отображение (узел *); void reverse (); void pep (); }; узел * первый, * s = NULL; ; void node :: create (int a [], int n) {first = new node; first-> data = a [0]; first-> next = NULL; узел * последний = первый; for (int i = 1; i data = a [i]; t-> next = NULL; last-> next = t; последний = т; }} узел * секунда; void node :: create2 (int a [], int n) {second = new node; second-> data = a [0]; second-> next = NULL; узел * последний = второй; for (int i = 1; i data = a [i]; t-> next = NULL; last-> next = t; последний = т; }} void node :: display (node ​​* r) {node * p; р = г; while (p) {cout << p-> data << ""; р = р-> следующий; }}; void node :: pep () {node * p = first, * q = second, * r = NULL; if (first-> data> second-> data) {s = second; q = q-> следующий; s-> next = NULL; } else {s = p; р = р-> следующий; s-> next = NULL; } while (p && q) {if (p-> data> q-> data) {s-> next = q; r = q-> следующий; s = q; s-> next = NULL; q = r; } else if (p-> data data) {s-> next = p; г = р-> следующий; s = p; s-> next = NULL; р = г; } else {s-> next = p; р = р-> следующий; s-> next = q; q = q-> следующий; }} if (p) {s-> next = p; } if (q) {s-> next = q; }} int main () {int a [4] = {1, 3, 5, 6}; int p [4] = {2, 4, 7, 8}; узел м; m.create (а, 4); m.create2 (p, 4); m.pep (); m.display (s); вернуть 0; }

...