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

Сортировка однонаправленного списка - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как исправить ошибку и в чем она заключается http://www.cyberforum.ru/cpp-beginners/thread1035953.html
Привет,помогите пожалуйста #include <iostream> #include <conio.h> #include <math.h> #include "vichiclenia.cpp" using namespace std; void main() { setlocale(0,"russian"); int a;
C++ вывод слов из файла Задача такая, нужно вывести все слова которые находятся в файле, но проблема в том что если после слова стоит запятая то он считает что это слово с запятой, одно слово. как сделать что-бы последний символ обрезался и добавлялся пробел. Так нужно что бы после слова прибавлялся пробел (условие). #include "stdafx.h" #include <fstream> #include <iostream> #include <string> using namespace... http://www.cyberforum.ru/cpp-beginners/thread1035938.html
LNK2019 C++
Заголовочный файл: namespace ns { const int QUARTERS = 4; struct sales { double Sales; double average; double max; double min;
Программа деления двух чисел C++
Программа должна проверять правильность введенных пользователем данных и, если они неверные (делитель равен нулю), выдвать сообщение об ошибке. Если введенные данные корректны, выводить частно от деления, если есть остаток. Пример: 18/5-Частное 3 и остаток 3. #include <conio.h> #include <stdio.h> #include <math.h> #include <iostream> using namespace std; int main(void) { int delimoe,...
C++ Дана квадратная матрица порядка n. Получить матрицу A^2 http://www.cyberforum.ru/cpp-beginners/thread1035883.html
Дана квадратная матрица порядка n. Получить матрицу A^2 (А в квадрате).
C++ Указатели Здравствуйте, подскажите пожалуйста какие операторы нужно использовать в С++, чтобы вывести на консоль в виде таблицы значения чисел в десятичном и шестнадцатеричном формате, а так же их адрес в оперативной памяти для типов int, long, float, double, char, bool? подробнее

Показать сообщение отдельно
Talkoflights
 Аватар для Talkoflights
25 / 25 / 5
Регистрация: 23.09.2012
Сообщений: 268
17.12.2013, 14:59  [ТС]     Сортировка однонаправленного списка
Цитата Сообщение от MrCold Посмотреть сообщение
Все тоже самое, что было

// меняем местами первый со вторым
Item tmp = *node1;
*node1 = *node2;
*node2 = tmp;

Item *ptrtmp = node1->Next;
node1->Next = node2->Next;
node2->Next = ptrtmp;


Проверка
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
 #include <iostream>
 
struct Item
    {
       int code;
       Item * Next;
    };
 
void   Add(Item *&  Head ,   Item *  newNode )
    {
     if( Head == NULL)
        {
          Head = newNode;             
        }
    else
        { 
             newNode->Next = Head;
             Head = newNode;  
        }
    }
 
void PrintList(  Item *  Head )
    {
        Item *Curr = Head;
        while (Curr)
        {
           std::cout << Curr->code << ' ';
           Curr = Curr->Next;
        }
    }
int main()
{
 
   Item * head = NULL;  
   Item* node1 = new Item();
   node1->Next = NULL;
   node1->code = 33;
 
   Item* node2 = new Item();
   node2->Next = NULL;
   node2->code = 22;
 
   Item* node3 = new Item();
   node3->Next = NULL;
   node3->code = 44;
 
   // вводим в обратном порядке
        Add(head, node3);       
        Add(head, node2);
        Add(head, node1);
 
        
        PrintList(head); //  печатаем 33 22 44
        std::cout << std::endl;
 
    //  меняем местами первый со вторым
         Item  tmp = *node1;
          *node1 = *node2;
          *node2 = tmp;
 
         Item  *ptrtmp = node1->Next;
         node1->Next = node2->Next;
         node2->Next = ptrtmp; 
 
        PrintList(head); //  печатаем 22 33 44
   
   
  system("pause");
}
Ваш способ, мое исполнение:
C++ (Qt)
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
void sort(int n, spis_upor* head, spis_upor* perv)
    {
        spis_upor buf;
        spis_upor *buf2;
        head=perv;
if(head->code > head->Next->code)
    {
    for(int i=0; i<n; i++)
        {
            head=perv;
            for(int j=0; j<n && head!=NULL; j++) //!
            {   
 
      buf=*head;
     *head=*head->Next;
     *head->Next=buf;
 
     buf2=head->Next;
     head->Next=head->Next->Next;
     head->Next->Next=buf2;
            }
        head=head->Next;
      }
    
            }
    }
Не сортирует. Более того, выводит какую-то околесицу.
 
Текущее время: 15:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru