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

Создать однопоточный линейный список и сортировать методом пузырька - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Таинственный тип void http://www.cyberforum.ru/cpp-beginners/thread322444.html
правильно ли я освободил память? #include <iostream> using namespace std; int main(){ void * mas; mas = new int(17);
C++ Затирание изображения. Программа выводит текст из файла в графическом режиме,и осуществляет скроллинг при помощи клавиш WASD,подскажите как осуществить затирание предыдущей позиции строк,чтобы при перемещении строк предыдущие их позиции стирались с экрана. До http://s005.***********/i211/1106/be/5c8431980898t.jpg После http://s002.***********/i200/1106/d8/dabac5bd2782t.jpg #include <conio.h> #include <stdio.h>... http://www.cyberforum.ru/cpp-beginners/thread322433.html
Создание игры и софта C++
Скажите пожалуйста какие книги можете порекомендовать на с++ я хочу написать игру в шахматы для виндоус но не знаю с чего начать код то я писать начал а как реализовать к примеру доску фигурки кнопки я не знаю сказали mvs 2010 поможет, но на нем я и обучаюсь прошел только до оператора switch тоже самое касается софта я имею ввиду визуальное оформление программ. Всем спасибо заранее.
C++ Сумма и разность чисел, представленных в виде bitset
Доброго времени суток. Реализую блочный алгоритм шифрования, в котором необходимо наличие операций сложения и вычитания чисел разрядностью 16 бит, а так же взятие по модулю 2^16 от суммы/разности. Бьюсь дня 4, постоянно ошибка с разностью. Надеюсь, кто-нибудь подскажет - в чём проблема. #define SIZE_ 32 #define SIZE_BLOCK_BIT 16 bitset<SIZE_> summa(bitset<SIZE_> A, bitset<SIZE_> B) {...
C++ ошибка в шифровании http://www.cyberforum.ru/cpp-beginners/thread322414.html
Пытаюсь сделать шифрование через SLL, проблема в том, что если задавать строку для шифрования большую, то строка обрезается (маленькие строки нормально работают). Помогите разобраться что и где я ошибся Encrypt и Decrypt всяты с доки по openssl myEncrypt и myDecrypt - это мои функии, в качестве параметра string и выводят string. #include <stdio.h> #include <math.h> #include <errno.h>...
C++ Экспоненциальная функция Добрый день, необходимо запрограммировать функцию 1-exp(-at) Основной вопрос как описать экспоненту ? Простенькие задачки без экспоненты разобрался как сделать, а вот когда добавляю exp в формулу программа не понимает. подробнее

Показать сообщение отдельно
xAtom
 Аватар для xAtom
910 / 735 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
19.06.2011, 13:42     Создать однопоточный линейный список и сортировать методом пузырька
Держи.

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
#include <stdio.h>
 
struct  lst {
     int  num;
     lst*  next;
     lst(void) : next(NULL) {}
     lst(lst* node, int data) {
        next = node;
        num = data;
     }
};
 
 
// функция по добавлению в список данных в хвост
lst*   add_back(lst*  p, int data) {
    if(! p) 
        p->next = p = new lst(NULL, data);
     else 
        p = p->next = new lst(p->next, data);
    return  p;
}
 
 
// функция возвращает размера списка
int  lsize(const lst* p)  {
    int size = 0;
    const lst*  next  = p->next;
    const lst*  end  = p->next;
    do {
        ++size;
        next = next->next;
    } while( next != end );
    return size;
}
 
 
// функция сортировки
lst*  lsort(lst* p) {
    int  size = lsize(p);
    while(1) {
        short test = 0;
        int sz = size - 1;
        for(lst* ps = p->next; sz--; ps = ps->next) {
            if( ps->num > ps->next->num ) {  
                int  tmp = ps->num;              
                ps->num = ps->next->num;      
                ps->next->num = tmp;   
                test = 1;
            }
        }
        if(! test)
             break;
    }
    return p;
}
 
 
 
// функция по удалению всего списка
void  lclear(lst* p) {
        int size = lsize(p);
        while(size--) {
             lst* tmp = p;
             p = p->next;
             delete tmp;
             tmp = NULL;
        }
}
 
 
// функция вывода
void  lprint(lst* l, const char* fmt) {
    const lst*  iter   = l->next;
    const lst*  end  = l->next;
    do {
        printf(fmt, iter->num );
        iter = iter->next;
    } while( iter != end );
}
 
 
void  main(void){
 
    lst*  l       =  NULL;
 
     // добавляем в список
    l = add_back(l,  4000);
    l = add_back(l,  2000);
    l = add_back(l,  1000);
    l = add_back(l,  -2005);
    l = add_back(l,  3000);
    l = add_back(l,  9000);
 
    // сортируем методом пузырка Кнута
    l = lsort(l);
 
    // выводим в консоль
    lprint(l, "%d, ");
 
    printf("\nsize = %d\n", lsize(l));
 
    lclear(l);
}
 
Текущее время: 12:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru