Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
KestS
0 / 0 / 0
Регистрация: 11.11.2018
Сообщений: 6
1

Двунаправленные списки: упорядочить по возрастанию

18.03.2019, 02:39. Просмотров 810. Ответов 1

нужно создать список случайных чисел, и в созданном списке упорядочить их в порядке возрастания
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.03.2019, 02:39
Ответы с готовыми решениями:

Двунаправленные списки
есть готовые функции для работы с двунаправленными списками нужно решить задачу: Представить в...

Двунаправленные списки
есть готовые функции для работы с двунаправленными списками нужно решить задачу: Создать...

Упорядочить массив по возрастанию
Упорядочить массив по возрастанию Подскажите, как реализовать

Упорядочить массив по возрастанию
1)Вывести все элементы массива находящиеся в диапазоне между средним и наименьшим значением...

Упорядочить по возрастанию элементов массив Z
Упорядочить по возрастанию элементов массив Z. Заранее спасибо.

1
ALast
34 / 28 / 7
Регистрация: 01.03.2019
Сообщений: 136
18.03.2019, 09:46 2
Лучший ответ Сообщение было отмечено KestS как решение

Решение

Решил в ЛОБ, уверен, что есть алгоритм сортировки умнее...
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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
typedef struct Node
{
    int data;
    struct Node* next;
    struct Node* prev;
} Node;
 
 
Node* GetNewNode(int data)
{
    Node* new_node = (Node*)
        (calloc(1, sizeof(Node)));
    if (new_node == 0)
        return 0;
 
    new_node->data = data;
 
    return new_node;
}
 
 
int AddToTail(Node** list,int data)
{
    if (*list == 0) {
        *list = GetNewNode(data);
        if (*list == 0)
            return 0;
        return 1;
    }
 
    Node* ptr = *list;
    while (ptr->next != 0)
        ptr = ptr->next;
 
    ptr->next = GetNewNode(data);
    ptr->next->prev = ptr;
 
    return (int)(ptr);
}
 
 
void PrintList(Node* list)
{
    Node* ptr = list;
 
    printf("List:\n");
    while (ptr != 0)
    {
        printf("%d ", ptr->data);
        ptr = ptr->next;
    }
    printf("\n");
}
 
 
void SortList(Node* list)
{
    Node* ptr = list;
 
    while (ptr != 0)
    {
        Node* i = ptr;
        while (i->prev != 0)
        {
            if (i->prev->data > i->data)
            {
                int tmp = i->prev->data;
                i->prev->data = i->data;
                i->data = tmp;
            }
            i = i->prev;
        }
        ptr = ptr->next;
    }
}
 
int main(int argc, char** argv)
{
    srand((unsigned int)(time(0)));
 
    Node* list = 0;
    for (int i = 0; i < 10; i++)
        AddToTail(&list, 0 + rand() % 10);
 
    PrintList(list);
 
    SortList(list);
    PrintList(list);
 
    return 0;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.03.2019, 09:46

Упорядочить элементы массива по возрастанию
как упорядочить элементы массива по возрастанию элементы массива вводить с клавиатуры ...

Упорядочить элементы массива по возрастанию
нужно упорядочить элементы массива по возрастанию си.у меня выводятся все по порядку а нужно по...

Упорядочить элементы массива по возрастанию
не запускается #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;math.h&gt; #include &lt;locale.h&gt;...


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

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

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