С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Wenderer
0 / 0 / 0
Регистрация: 11.05.2010
Сообщений: 5
#1

Объединение двух отсортированных списков - C++

13.05.2010, 20:35. Просмотров 689. Ответов 0
Метки нет (Все метки)

Ошибка где-то во вставке элементов 2-ого списка в первый, не могу найти


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
#include <iostream>
#include <cmath>
using namespace std;
struct node {
    int elem;
    node *sled;
    node *pred;
};
int main ()
{
    node *nsp1;
    node *sp1;
    node *ksp1;
    int el;
    nsp1=new(node);
    sp1=nsp1;
    (*nsp1).sled=NULL;
    (*nsp1).pred=NULL;
    cout <<"Vvedite element: ";
    cin >>el;
    while (el!=0)
    {
        (*sp1).elem=el;
        (*sp1).sled=new(node);
        (*((*sp1).sled)).pred=sp1;
        sp1=(*sp1).sled;
        ksp1=sp1;
        (*ksp1).sled=NULL;
        cout <<"Vvedite element: ";
        cin >>el;
    }
    cout <<"spisok1: ";
    for (sp1=nsp1;sp1!=ksp1;sp1=(*sp1).sled)
        cout <<(*sp1).elem<<'\t';
    node *k1;
    node *q1;
    node *b1;
    b1=new(node);
    for(k1=(*ksp1).pred;k1>=(*nsp1).sled;k1=(*k1).pred)
        for(sp1=nsp1;sp1<=(*k1).pred;sp1=(*sp1).sled)
        {
            q1=(*sp1).sled;
                if((*sp1).elem>(*q1).elem)
                {
                    (*b1).elem=(*sp1).elem;
                    (*sp1).elem=(*q1).elem;
                    (*q1).elem=(*b1).elem;
                }
        }
    cout <<'\n'<<"otsortirovanniy spisok1: ";
    for (sp1=nsp1;sp1!=ksp1;sp1=(*sp1).sled)
        cout <<(*sp1).elem<<'\t';
    node *nsp2;
    node *sp2;
    node *ksp2;
    nsp2=new(node);
    sp2=nsp2;
    (*nsp2).sled=NULL;
    (*nsp2).pred=NULL;
    cout <<'\n'<<"Vvedite element: ";
    cin >>el;
    while (el!=0)
    {
        (*sp2).elem=el;
        (*sp2).sled=new(node);
        (*((*sp2).sled)).pred=sp2;
        sp2=(*sp2).sled;
        ksp2=sp2;
        (*ksp2).sled=NULL;
        cout <<"Vvedite element: ";
        cin >>el;
    }
    cout <<"spisok2: ";
    for (sp2=nsp2;sp2!=ksp2;sp2=(*sp2).sled)
        cout <<(*sp2).elem<<'\t';
    node *k2;
    node *q2;
    node *b2;
    b2=new(node);
    for(k2=(*ksp2).pred;k2>=(*nsp2).sled;k2=(*k2).pred)
        for(sp2=nsp2;sp2<=(*k2).pred;sp2=(*sp2).sled)
        {
            q2=(*sp2).sled;
            if((*sp2).elem>(*q2).elem)
                {
                    (*b2).elem=(*sp2).elem;
                    (*sp2).elem=(*q2).elem;
                    (*q2).elem=(*b2).elem;
                }
        }
        cout <<'\n'<<"otsortirovanniy spisok2: ";
        for (sp2=nsp2;sp2!=ksp2;sp2=(*sp2).sled)
            cout <<(*sp2).elem<<'\t';
 
    
    for (sp2=nsp2;sp2!=ksp2;sp2=(*sp2).sled)
        for (sp1=nsp1;sp1!=ksp1;sp1=(*sp1).sled)
            {
                q1=(*sp1).sled;
                if (((*sp2).elem>(*sp1).elem)&&((*sp2).elem<(*q1).elem))
                {
                    (*sp1).sled=sp2;
                    (*sp2).pred=sp1;
                    (*sp2).sled=q1;
                    (*q1).pred=sp2;
                }
            }
    cout <<'\n'<<"spisok: ";
    for (sp1=nsp1;sp1!=ksp1;sp1=(*sp1).sled)
        cout <<(*sp1).elem<<'\t';
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.05.2010, 20:35
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Объединение двух отсортированных списков (C++):

Слияние двух отсортированных списков - C++
Напишите функцию List&amp; merge(List&amp; L1, List&amp; L2), добавляю- щую к упорядоченному списку L1 также упорядоченный список L2 и ...

Объединение двух списков - C++
Помогите пожалуйста с решением следующей задачи. Нужно добавить функцию для объединения двух списков. #include &lt;iostream&gt; ...

Найти объединение двух списков - C++
Помогите мне решить задачку, я в принципе не понимаю как её решать, вот её условие. Найти объединение двох списков,тоисть получить такой...

Объединение (конкатенация) двух односвязных списков - C++
Задача: Построить стек (односвязный список). Показать реализацию стека на следующем примере: сцепить два связанных списка данных...

Объединение двух связанных списков (нужен совет) - C++
шаблон ListNode #pragma once // оголошення, щоб зробити другом template&lt; typename NODETYPE &gt; class List; // шаблон класу ...

Объединение двух связных списков с объектами одного типа - C++
Здравствуйте. При изучении связных списков, написал шаблон для связного списка, с функциями добавления и удаления с начала и конца списка....

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.05.2010, 20:35
Привет! Вот еще темы с ответами:

Объединение двух списков в один без повтора элементов (С++) - C++
нужно дописать функцию, которая делает из двух списков один (новый), в котором все элементы разные, то есть не повторяются. Спасибо! ...

Объединение списков - C++
Все работает, но каждый элемент 3-го списка идет через пробел, можно ли убрать эти пробелы? #include &lt;iostream&gt; using namespace std; ...

Объединение списков (list) - C++
Как правильно сделать объединение списков? #include &lt;list&gt; #include &lt;iostream&gt; using namespace std; int main() { list...

АТД список. Объединение списков. - C++
Здравствуйте! Подскажите пожалуйста как объединить два списка в один?? Или второй список добавить в конец первого? Вот так...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.