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

Динамические структуры: линейные списки - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Практика на С++ http://www.cyberforum.ru/cpp-beginners/thread25673.html
Дело вот в чем. Я программист самоучка и учителя у меня не было. Прочитал несколько книг по C++, все понял, со всем разобрался. Но всё это было чисто теоритически, а когда дошел до практического применения своих знаний, то пришлось внивь лезть за книжкой. Подкиньте пожалуйста книжку с задачами на C++. Не нужна никакая теория и т.д. Просто сборник задач от простых к сложным.
C++ События по таймеру (в консоли) Как в консоли можно сделать что бы какой-то участок кода выполнялся через каждые n секунд, так, что бы программа завершала выполнение этого участка и начинала его выполнять снова, если он не успел выполнится (что бы, например, getch() не ждала вечно, пока пользователнь что-то нажмет). По типу, как в билдере OnTimer http://www.cyberforum.ru/cpp-beginners/thread25671.html
C++ Getch для управляющих клавиш
Использую Getch для считывания кода управляющей клавиши(стрелки). Почему при первом вызове считывается код 32? На паскале работал там символ управляющей клавиши первым был #0?
Нет откомпилированного файла C++
Попробовал создать проект с AppWizard, в точности как описано здесь: http://www.firststeps.ru/mfc/steps/r.php?30 Суть в следующем. Если откомпилировать сразу после создания проекта, то создаётся исполняемый файл. Потом вношу изменения в проект, запускаю, запускается изначальный проект, без изменений. Даже если запустить с явными ошибками, всё равно будет получен исходный результат. Если...
C++ Определить четырехзначное число http://www.cyberforum.ru/cpp-beginners/thread25614.html
Помогите с помощью операторов while, do-while, for, break,continue вычислить четырехзначное число, которое делится на 2,7 и 11! состоит всего из двух одинаковых цифр и сумма всех четырех цифр равна 30!
C++ Функция как параметр Нужна помощь.... Проблема такая: есть функция которая рисует график математической функции ранее обьявленной, например: float f(float x) { return 2*sin(2*x); } void DrawF(float a, float b)// параметры - это промежуток по оси ОХ { .... //тута используется функция f(x) подробнее

Показать сообщение отдельно
Monte-Cristo
2788 / 1374 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
11.03.2009, 22:20     Динамические структуры: линейные списки
ну посмотри вот... я тут реализовывал дек.. т.е. можешь сделать подобно, толлько вместо Data свои поля создать..ну и убрать пару ненужных функций

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
/////////////////////////////////////////////////////////////////
//          (c) 2009 Igor Kalnitsky                          //
/////////////////////////////////////////////////////////////////
#include <iostream.h>
#include <conio.h>
/////////////////////////////////////////////////////////////////
struct dek_node
{
    int data;
    dek_node *prev;
    dek_node *next;
};
/////////////////////////////////////////////////////////////////
dek_node *CreateDek(int Data)
{
    dek_node *dekNode = new dek_node;
    
    dekNode->data = Data;
    dekNode->prev = NULL;
    dekNode->next = NULL;
    
    return dekNode;
}
/////////////////////////////////////////////////////////////////
dek_node *PutBegin(dek_node *dek,int Data)
{
    dek_node *dekNode = new dek_node;
 
    while (dek->prev != 0) dek = dek->prev;
 
    dekNode->data = Data;
    dekNode->prev = NULL;
    dekNode->next = dek;
 
    dek->prev = dekNode;
 
    return dekNode;
}
/////////////////////////////////////////////////////////////////
dek_node *PutEnd(dek_node *dek,int Data)
{
    dek_node *dekNode = new dek_node;
 
    while (dek->next != 0) dek = dek->next;
 
    dekNode->data = Data;
    dekNode->prev = dek;
    dekNode->next = NULL;
 
    dek->next = dekNode;
 
    return dekNode;
}
/////////////////////////////////////////////////////////////////
void ExtractEnd(dek_node *dek)
{
 
    while (dek->next != 0) dek = dek->next;
 
    do
    {
        cout << dek->data << " ";
        dek = dek->prev;
    } while(dek->prev != 0);
 
    cout << dek->data;
}
/////////////////////////////////////////////////////////////////
void ExtractBegin(dek_node *dek)
{
    
    while (dek->prev != 0) dek = dek->prev;
 
    do 
    {
        cout << dek->data << " ";
        dek = dek->next;
    } while(dek->next != 0);
 
    cout << dek->data;
}
/////////////////////////////////////////////////////////////////
dek_node *ClearDek(dek_node *dek)
{
    while (dek->next != 0) dek = dek->next;
 
    while (dek->prev != 0)
        {
            dek_node *tmp = dek;
            dek = dek->prev;
            dek->next = NULL;
            delete tmp;
        }
 
    return dek;
}
/////////////////////////////////////////////////////////////////
bool IsSpace(dek_node *dek)
{
    if (dek->next == NULL && dek->prev == NULL) 
        return true;
 
    return false;
}
/////////////////////////////////////////////////////////////////
int main()
{
    int data;
 
    cout << "Vvedite element deka = ";
    cin >> data;
 
    dek_node *dek = CreateDek(data);
 
    cout << "Dobavit v nachalo Deka = ";
    cin >> data;
    dek = PutBegin(dek, data);
 
    cout << "Dobavit v konec Deka = ";
    cin >> data;
    dek = PutEnd(dek, data);
 
    cout << "\nDek s nachala: \n";
    ExtractBegin(dek);
 
    cout << "\n";
 
    cout << "Dek s konca: \n";
    ExtractEnd(dek);
 
    cout << "\n\nOchishaem dek...\n";
    dek = ClearDek(dek);
 
    cout << "\nDek pustoi? ";
    if (IsSpace(dek)==true) 
        cout << "Yes"; else cout << "No";
 
    getch();
    return 0;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru