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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Практика на С++ http://www.cyberforum.ru/cpp-beginners/thread25673.html
Дело вот в чем. Я программист самоучка и учителя у меня не было. Прочитал несколько книг по C++, все понял, со всем разобрался. Но всё это было чисто теоритически, а когда дошел до практического...
C++ События по таймеру (в консоли) Как в консоли можно сделать что бы какой-то участок кода выполнялся через каждые n секунд, так, что бы программа завершала выполнение этого участка и начинала его выполнять снова, если он не успел... 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! состоит всего из двух одинаковых цифр и сумма всех четырех цифр равна...
C++ Функция как параметр Нужна помощь.... Проблема такая: есть функция которая рисует график математической функции ранее обьявленной, например: float f(float x) { return 2*sin(2*x); } void DrawF(float a, float... подробнее

Показать сообщение отдельно
Monte-Cristo
2789 / 1375 / 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;
}
3
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru