Форум программистов, компьютерный форум CyberForum.ru

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

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

отсортировать связанный список - C++

16.05.2013, 00:47. Просмотров 253. Ответов 0
Метки нет (Все метки)

помогите отсортировать односвязанный список.
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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
#include <iostream>
#include <cstdlib>
 
using namespace std;
 
typedef struct linked_list{
    int data;
    struct linked_list *next;
}Linked_list;
 
int add_node(Linked_list **head, int d)
{
    Linked_list *l = new Linked_list;
    if(l == NULL) return 0;
    
    Linked_list *t = *head;
    l->data = d;
    l->next = NULL;
 
    if(*head == NULL){
        *head = l;
        return 1;
    }
 
    while(t->next != NULL){
        t = t->next;
    }
 
    t->next = l;
 
    return 1;
}
 
void print_list(Linked_list *head)
{
    while(head != NULL){
        cout << head->data << " ";
        head = head->next;
    }
    cout << endl;
}
 
void del_list(Linked_list *head)
{
    while(head != NULL){
        Linked_list *t = head ->next;
        delete head;
        head = t; 
    }
}
 
Linked_list * merge_list(Linked_list *l1, Linked_list *l2)
{
    Linked_list *h = l1, *r = l1, t; 
 
    if(l1 == NULL){
        return l2;
    }
 
    if(l2 == NULL){
        return l1;
    }
 
    if(l1->data < l2->data){
        h = r = l1;
        l1 = l1->next;
    }
    else{
        h = r = l2;
        l2 = l2->next;
    }
 
    while(l1->next != NULL && l2->next != NULL){
        if(l1->data < l2->data){
            r->next = l1; 
            l1 = l1->next;
            r = r->next;
        }
        else{
            r->next = l2;
            l2 = l2->next;
            r = r->next;
        }
    }
 
    if(l1->next != NULL)
    {
        r->next = l1;
    }
 
    if(l2->next != NULL)
    {
        r->next = l2;
    }
 
    return h;
}
 
int main(int argc, char* argv[])
{   int s,k;
    Linked_list *l1 = NULL;
    Linked_list *l2 = NULL;
    cout<<"skolko elementov v spiske?"<<endl;
    cin>>k;
    cout<<"vvedite "<<k<<" elemontov pervogo spiska"<<endl;
    for(int i = 0; i < k; i ++){
        cin>>s;
        add_node(&l1, s);
    }
    cout<<endl;
    cout<<"pervyi spisok\n";
    print_list(l1);
    cout<<"skolko elementov v spiske?"<<endl;
    cin>>k;
    cout<<"vvedite "<<k<<" elementov vtorogo spiska"<<endl;
    for(int i = 0; i < k; i ++){
        cin>>s;
        add_node(&l2, s);
    }
    cout<<endl;
    cout<<"vtoroi spiok\n";
    print_list(l2);
 
    Linked_list *h = merge_list(l1, l2);
    
    print_list(h);
 
    del_list(h);
    system("pause");
 return 0;
}
надо отсортировать готовый список Linked_list *h = merge_list(l1, l2);
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.05.2013, 00:47     отсортировать связанный список
Посмотрите здесь:

Связанный список - C++
Доброе утро есть ли у кого пример Связанного списка. И чем он вообще отличаетьсяот массива кроме того , что связанный список динамичен.

Связанный список - C++
ребят,нужна помощь. короче дело в том,что нужно &quot;то есть тебе нужно поменять местами ссылки друг на друга.. то есть когда ты считываешь...

Связанный список - C++
Не могу обратиться к методу класса Node хотя они выраженны как public: void addNode(int d); void printList(); #include&lt;iostream&gt; ...

Связанный список - C++
Всем доброго время суток, написать программу демонстрации связанного списка, где PART - (ДЕТАЛЬ) содержит номер детали и остальную...

Циклический связанный список - C++
Доброго времени суток. Пытаюсь посчитать количество значений в циклическом списке. Но всегда получается на 1 значение меньше. Или я должен...

Связанный список (ООП) - C++
Ребят , помогите с лабой пожалуйста. Вот задание : Створити динамічний клас University, що базується на зв’язному списку, де кожний...

Связанный двусторонний список - C++
Решил написать свой двусторонний список и совершенно внезапно столкнулся с проблеммой отчистки. Итак вот класс элемента списка и его...

Однонаправленный связанный список - C++
вот задание Однонаправленный связанный список Тип информационной части узла списка-char 1. Определение структуры информационной...

И снова связанный список - C++
Есть кусок связанного списка, только начал его делать, в тырнете много примеров как он реализован на структурах, в одних случаях структура...

Создать связанный список - C++
Если создать структуру я могу, то со связными списками совсем беда.


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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