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

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

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

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

16.05.2013, 00:47. Просмотров 275. Ответов 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);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.05.2013, 00:47
Здравствуйте! Я подобрал для вас темы с ответами на вопрос отсортировать связанный список (C++):

Связанный список. Создать, записать в связный список последовательность слов,обозначающих месяцы года,заданных пользователем - C++
Создать связанный список.Кроме информационных полей он должен обязательно содержать указатели на предыдущий и следующий за ним...

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

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

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

Связанный список. - C++
Компилятор ругается на строку 169 In member function `virtual Node* HeadNode::Insert(Data*)': 169 argument of type...

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

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

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

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

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

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


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

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

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