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

Естественное двухпутевое слияние - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Массивы. Найти минимальное значение элементов массива http://www.cyberforum.ru/cpp-beginners/thread788789.html
Задание на масив на С++ Найти минимальное значение элементов массива. Вывести на дисплей полученное значение.После этого изменить исходный мас-сив, выполнив указанную операцию для всех его элементов: если среди всех элементов массива, расположенных левее данного, есть меньшее значение, у данного элемента следует изменить знак; в противном случае значение элемента остается неизменным. Вывес-ти на...
C++ Перенос текста в файл без комментариев Дело такое, нужно написать программу, которая из одного файла, в котором написана рабочая программа с комментариями, переносит текст в другой текстовый файл, но уже без комментариев. Хотел сделать, чтобы программа переносила текст до знака /, но как сделать чтобы она начинала писать следующую строку после символа не понял. Есть небольшой набросок, но там написана чушь, где программа просто... http://www.cyberforum.ru/cpp-beginners/thread788775.html
C++ Как правильно использовать несколько файлов
Доброе время суток, появилась необходимость разбить программу на несколько файлов в которых выполняются какие то действия. раньше такого не делал и не нашел четкого описания как это сделать. есть 3 файла: main.cpp (основной); les3.cpp, les4.cpp (дополнительные) - возможно их нужно переименовать main.cpp: #include <iostream>
Произведение массива до первого отрицательного числа C++
Написать программу, в которой массив генерируется случайными числами от -5 до 5. Вычислить произведение элементов массива до первого отрицательного.
C++ Вывести индексы и значение массива http://www.cyberforum.ru/cpp-beginners/thread788742.html
Написать программу, которая проверяет, есть ли во введенном с клавиатуры массиве элементы с одинаковым значением. Вывести их индексы и значения. Затем сделать то же с массивом генерируется случайными числами от 0 до 10 Добавлено через 48 минут никто не знает?(
C++ Начало ООП. Классы Здравствуйте.Читал про ссылки массивов на указатели, и указателей на массивы.Не могу понять как в этой программе как функции ссылаются на объект nds, вот эти строки непонятны const int MAX = 25; NameDataSet nds;. А именно не могу понять инструкция const . И еще вот это if (stricmp(nds.firstName, "exit") == 0) Что значит == 0(типа "если nds.firstName равно 0" или что) Если кто... подробнее

Показать сообщение отдельно
nekto_igor
0 / 0 / 0
Регистрация: 07.01.2012
Сообщений: 5

Естественное двухпутевое слияние - C++

18.02.2013, 19:59. Просмотров 1770. Ответов 9
Метки (Все метки)

Реализация связи элементов линейного списка - указатели. Способ организации линейного связанного списка - дек.
Алгоритм сортировки - Естественное двухпутевое слияние. Не могу написать код сортировки, сам алгоритм понял, а с кодом разобраться не могу. Помогите заочнику закрыть задолжность ..

Добавлено через 20 часов 8 минут
вот код без сортировки

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
#include "stdafx.h"
#include "iostream"
 
using namespace std;
  
struct Value
{
        public:int val;
        Value* Next;
        Value* Prev;
        Value(int n):Next(0),Prev(0),val(n){};
};
 class deq
{
        Value* Head;
        Value* Tail;
        public:void Add_First(int n);
        public:void Add_Last(int n);
        public:void Delete_First();
        public:void Delete_Last();
        public:void Print();
        public:void Sort();
        public:deq(){Head=NULL;Tail=NULL;}
};
 void deq::Add_First(int n)
{
        Value* Elem=new Value(n);    
        Elem->Prev=NULL;
        if (Head!=NULL)
        {
             Elem->Next=Head;
            Head->Prev=Elem;
            Head=Elem;
        }
        else
        {
            Elem->Next=NULL;
            Head=Tail=Elem;
        }
}
void deq::Add_Last(int n)
{
        Value* Elem=new Value(n);    
        Elem->Next=NULL;
        if (Tail!=NULL)
        {
            Elem->Prev=Tail;
            Tail->Next=Elem;
            Tail=Elem;
        }
        else
        {
            Elem->Next=NULL;
            Tail=Head=Elem;
        }
}
 void deq::Delete_First()
{
        Value *p;
        p=Head->Next;
        delete Head;
        Head=p;
        p->Prev=NULL;
}
void deq::Delete_Last()
{
        Value *p;
        p=Tail->Prev;
        delete Tail;
        Tail=p;
        p->Next=NULL;
}
 void deq::Print()
{
        Value *p=Head;
        while(p!=NULL)
        {
                cout<<p->val<<"  ";
                p=p->Next;
        }
        cout<<"\n";
        }
 void deq::Sort()
{}
int main()
{     deq elements;
 
        elements.Add_First(15);
        elements.Add_First(1);
        elements.Add_First(3);
        elements.Add_First(7);
        elements.Add_First(9);
        elements.Add_Last(4);
        elements.Add_Last(6);
        elements.Print();
        elements.Sort();
        cout << "\n";
        elements.Print();
 
        system("pause");
        return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 01:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru