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

Сортировка линейных(односвязных) списков - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Что такое дескриптор ? http://www.cyberforum.ru/cpp-beginners/thread817622.html
Подскажите пожалуйста что представляет из себя дескриптор ??? Не могу разобраться ? в понятии это подразумеваеться какое то значение или число !!! И в функциях везде пишется: указать дескриптор , или извлекаеться дескриптор а потом как то он приминяться!! Вопрос в том что из себя представляют дескрипторы, можно ли их как то форматировать или управлять ими , и куда они заносяться или...
C++ Поиск дня недели в вечном календаре По заданию в вечном календаре нужно по введенной дате(число месяц год )вывести день недели перепробывал кучу разных формул но ни одна четко не работает некоторые вычисляют точно но всего на несколько месяцев вот последняя которой я пользовался iint dayofweek(int year,int month,int date) //Выводим день недели { int c = year/100; http://www.cyberforum.ru/cpp-beginners/thread817610.html
работа с файлами и строковыми данными C++
Здравствуйте!Помогите пожалуйста,что нужно добавить к нижеприведенному коду программы,который заменяет двойные пробелы в файле Input на одиночные и выдает отредактированный текст в файл Output, чтобы ввести ограничение:не заменять двойные пробелы, заключенные в апострофы или кавычки?Спасибо! #include "stdafx.h" #include <iostream> #include <ctype.h> #include <conio.h> #include <string.h>...
C++ класс обработки ошибок
Добрый вечер всем. Опять я. Опять проблема - хочу написать класс обработки ошибок для лабораторной работы. Код в приложении. Просто организовать обработку ошибок - не проблема, благо задача простенькая, только кода лишнего возможно много. А вот создать класс который будет ловить ошибки типа нехватки памяти, некорректного ввода, ну и еще там что нибудь - по моему скромному мнению не...
C++ оптимизация кода http://www.cyberforum.ru/cpp-beginners/thread817600.html
Добрый вечер всем. У меня такая проблема: написал прогу, необходимо продемонстрировать ее работу. Т.е. есть L2 список, дек и массив деков, необходимо реализовать для каждого типа объектов меню с вызовом их методов. Я набросал, но получилось около 300 строк кода на одни менюшки, мне это не нравится, тем более что половина методов похожа - ввод, вывод, копирование, присваивание. Только для разных...
C++ ещё одна с матрицами,только более сложная Дана действительная матрица 7x7. Найти минимальное значе-ние среди элементов, стоящих над главной диагональю, и макси-мальное среди элементов, находящихся ниже главной диагонали, а также их местоположение. Сформировать одномерный массив, со-держащий сумму элементов четных строк и произведение элементов нечетных строк. подробнее

Показать сообщение отдельно
anmartex
...
 Аватар для anmartex
1700 / 1193 / 494
Регистрация: 12.02.2013
Сообщений: 1,978
25.03.2013, 11:12     Сортировка линейных(односвязных) списков
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
#include <iostream>
#include <string>
#include <cstdlib>
#include <ctime>
 
using namespace std;
 
struct TNode
{
    string data;
    TNode* next;
};
 
struct TList
{
   TNode* first;
   TNode* last;
};
 
//----------------------------------------------//
TList& Push(TList& list, const string& text)
{
   TNode* node = new TNode;
   node->data = text;
   node->next = NULL;
 
   if (list.last == NULL)
   {
      list.first = list.last = node;
   }
   else
   {
      list.last->next = node;
      list.last = node;
   }
 
   return list;
}
//----------------------------------------------//
string GetRandomWord(size_t length)
{
   static const string CAlphabet = "abcdefghijklmnopqrstuwvxyz";
   //static const string CAlphabet = "0123456789";
 
   string word;
 
   while (length--)
   {
      word += CAlphabet[rand() % CAlphabet.size()];
   }
 
   return word;
}
//----------------------------------------------//
ostream& operator << (ostream& os, const TList& list)
{
   TNode* node = list.first;
 
   os << "[";
   for (; node && (node != list.last->next); node = node->next)
   {
      os << node->data;
 
      if (node != list.last)
      {
         os << ", ";
      }
   }
   os << "]";
 
   return os;
}
//----------------------------------------------//
TList& Sort(TList& list)
{
   TList result = {list.first, list.first};
   list.first = list.first->next;
 
   while (list.first)
   {
      TNode* node = list.first;
      list.first = list.first->next;
 
      if (node->data < result.first->data)
      {
         node->next = result.first;
         result.first = node;
      }
      else
      {
         TNode* cursor = result.first;
         for (; cursor != result.last &&
                (cursor->next->data < node->data)
              ; cursor = cursor->next) { ; }
 
         node->next = cursor->next;
         cursor->next = node;
 
         if (cursor == result.last)
         {
            result.last = node;
         }
      }
   }
   result.last->next = NULL;
 
   list = result;
 
   return list;
}
//----------------------------------------------//
 
int main()
{
   srand(time(NULL));
 
   TList list = {NULL, NULL};
 
   for (size_t i = 0; i < 8; ++i)
   {
      Push(list, GetRandomWord(6));
   }
 
   cout << "source: " << list << endl;
   cout << "sorted: " << Sort(list) << endl;
 
   system("pause");
 
   return 0;
}
Сортировка линейных(односвязных) списков

Бинарник + исходник: program.7z
 
Текущее время: 02:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru