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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ События по таймеру (в консоли) http://www.cyberforum.ru/cpp-beginners/thread25671.html
Как в консоли можно сделать что бы какой-то участок кода выполнялся через каждые n секунд, так, что бы программа завершала выполнение этого участка и начинала его выполнять снова, если он не успел выполнится (что бы, например, getch() не ждала вечно, пока пользователнь что-то нажмет). По типу, как в билдере OnTimer
C++ Getch для управляющих клавиш Использую Getch для считывания кода управляющей клавиши(стрелки). Почему при первом вызове считывается код 32? На паскале работал там символ управляющей клавиши первым был #0? http://www.cyberforum.ru/cpp-beginners/thread25662.html
Нет откомпилированного файла C++
Попробовал создать проект с AppWizard, в точности как описано здесь: http://www.firststeps.ru/mfc/steps/r.php?30 Суть в следующем. Если откомпилировать сразу после создания проекта, то создаётся исполняемый файл. Потом вношу изменения в проект, запускаю, запускается изначальный проект, без изменений. Даже если запустить с явными ошибками, всё равно будет получен исходный результат. Если...
C++ Определить четырехзначное число
Помогите с помощью операторов while, do-while, for, break,continue вычислить четырехзначное число, которое делится на 2,7 и 11! состоит всего из двух одинаковых цифр и сумма всех четырех цифр равна 30!
C++ Считать текст из файла, найти самое длинное слово и определить сколько раз оно встретилось в тексте http://www.cyberforum.ru/cpp-beginners/thread25610.html
Помогите пожалуйста решить задачу по строкам в C++: написать программу, которая считывает текст из файла, находит самое длинное слово и определяет сколько раз оно встретилось в тексте
C++ Дан массив F[0:n-1].Сформировать два новых массива: первый содержит элементы, не превышающие заданного числа, а второй - все остальные Помогите пожалуйста.Нужен полный текст программы, заранее благодарен подробнее

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