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

Сортировка списка - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Разность дат http://www.cyberforum.ru/cpp-beginners/thread683257.html
Напишите плиз кодом разность дат от текущей даты и задаваемой! Заранее спасибо!
C++ Определить количество элементов матрицы, содержащих простые числа Помогите пожалуйста с заданием: Дана целочисленная прямоугольная матрица. Написать программу, определяющую количество элементов матрицы, содержащих простые числа. Конкретно мне не понятно как... http://www.cyberforum.ru/cpp-beginners/thread683227.html
Рассчитать значение функции f(x) по соответствующей формуле C++
Составьте программу, которая принимает от пользователя значение x и в зависимости от его значения, рассчитывает значение функции f(x) по соответствующей формуле. Проверка того, что функция не...
Реализовать класс с двумя скрытыми полями first и second C++
В с++ только начал разбираться, прошу помощи в решении задач. Задание: ООП – Задание № 1 Реализовать класс с двумя скрытыми полями first и second. Во классе должны при- сутствовать следующие...
C++ однонаправленная очередь http://www.cyberforum.ru/cpp-beginners/thread683196.html
Проблема следующая,это одноноправленная очередь. 1)Создую очередь,удалаю элементы,все хорошо,НО тут же хочу создать заново очередь,пишет при добавлении элемента порвеждение кучи,помогите...
C++ БСА БСА для вычисления функции y=f(x). При условии, что в каждом блоке может находиться только одна арифметическая операция подробнее

Показать сообщение отдельно
СергейАС
1 / 1 / 1
Регистрация: 02.02.2012
Сообщений: 73

Сортировка списка - C++

29.10.2012, 13:26. Просмотров 572. Ответов 1
Метки (Все метки)

Здравствуйте!!! Прошу помочь мне написать алгоритм сортировки односвязного списка.
Задание такое: необходимо из элементов трёх списков создать новый список, так чтобы он был упорядочен.
Новый список я создал, но отсортировать не знаю как:
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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
#include "stdafx.h"
#include <list>
#include "iostream"
#include <stdio.h>
#include <conio.h>
#include<iostream>
#include<cmath>
 
using namespace System;
 
struct list
{
    int inf;
    list* next;
};
 
list* sp1_create();
list* sp2_create();
list* sp3_create();
void print(list*L);
list* sort(list* L);
 
int main()
{
    int n;
    list* F1;
    list* F2;
    list* F3;
    list* P;
    list* start, *end;
    F1=sp1_create();
    F2=sp2_create();
    F3=sp3_create();
    Console::WriteLine(L"Полученные списки: ");
    print(F1);
    print(F2);
    print(F3);
    P=F1;
    start=P;int i=0;
    for (; P; )
    {
        
        i++;
        if(P->next)
            P=P->next;
        else
            break;
    }
    P->next=F2;
    P=start;
    for (; P; )
    {
        
        i++;
        if(P->next)
            P=P->next;
        else
            break;
    }
    P->next=F3;
    Console::WriteLine(L"Полученный список: ");
    print(start);
    system("Pause");
    return 0;
}
 
list* sp1_create()
{
 
   list *start,*new_link1,*new_link2,*new_link3,*end;
    int n;
    Console::WriteLine(L"Введите размер списка 1: ");
    scanf("%d",&n);
    end = start = NULL;
    for (int i = 0; i < n; i++)
    {
        new_link1 = new list();
        Console::WriteLine(L"Введите элемент списка:");
        scanf("%d",&new_link1->inf);
        if (!i)
            start = end = new_link1;
        else
        {
            end->next = new_link1;
            end = end->next;
        }
    }
     end->next = NULL;
     end = end->next;
    return start;
}
 
list* sp2_create()
{
 
   list *start,*new_link1,*new_link2,*new_link3,*end;
    int n;
    Console::WriteLine(L"Введите размер списка 2: ");
    scanf("%d",&n);
    end = start = NULL;
    for (int i = 0; i < n; i++)
    {
        new_link2 = new list();
        Console::WriteLine(L"Введите элемент списка:");
        scanf("%d",&new_link2->inf);
        if (!i)
            start = end = new_link2;
        else
        {
            end->next = new_link2;
            end = end->next;
        }
    }
     end->next = NULL;
     end = end->next;
    return start;
}
 
list* sp3_create()
{
 
   list *start,*new_link1,*new_link2,*new_link3,*end;
    int n;
    Console::WriteLine(L"Введите размер списка 3: ");
    scanf("%d",&n);
    end = start = NULL;
    for (int i = 0; i < n; i++)
    {
        new_link3 = new list();
        Console::WriteLine(L"Введите элемент списка:");
        scanf("%d",&new_link3->inf);
        if (!i)
            start = end = new_link3;
        else
        {
            end->next = new_link3;
            end = end->next;
        }
    }
     end->next = NULL;
     end = end->next;
    return start;
}
 
void print(list *L)
{ 
    for (; L; L=L->next)
    std::cout <<L->inf << ' ';
  std::cout << '\n';
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru