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

Формирование списка и работа с ним - C++

Восстановить пароль Регистрация
 
trollondinner
Сообщений: n/a
27.09.2012, 15:47     Формирование списка и работа с ним #1
Задали написать программу на с++. Написал её, а точнее составил из разных кусков, которые были даны на семинаре. Программа работает, но ,к сожалению, я не могу объяснить преподавателю как и что работает.
Что то подписал, а остальное не знаю как.( Выделено комментариями, что не могу объяснить) Помогите пожалуйста.
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
#include <iostream>
using namespace std;
struct node { int info; 
struct node *next;
}; 
// [ЭТО]
int countOfE(node *list, int E) {
node *iter = list;
int count = 0;
while (iter != NULL) {
if (iter->info == E)
count++;
iter = iter->next;
// [/ЭТО]
}
return count;
}
void main()
{
typedef node *NodePtr; // указатель на тип node
NodePtr head = NULL;
NodePtr p;// указатель на текущий элемент
NodePtr tail;// указатель на "хвост" очереди
int N = 10; // количество элементов в очереди
int cnt = 1;// счетчик элементов в очереди
 
// [ЭТО]
if (head == NULL)
{ head = new node;
head->info = rand()%100 - 50;
head->next = NULL;
tail = head;
}
for (int i = 2; i<=N; i++)
{ p = new node;
p->info = rand()%100 - 50;
tail->next = p;
p->next = NULL;
tail = p;
}
// Вывод очереди на экран
p = head;
for (int i = 1; i<=N; i++)
{ cout << p->info << ' ';
p = p->next;
// [/ЭТО]
}
cout <<endl;
int E;
cin >> E;
cout << "Kol vo chisel ravnoe vvedennomy " << countOfE(head, E) << endl;
return;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.09.2012, 15:47     Формирование списка и работа с ним
Посмотрите здесь:

Динамические структуры данных. Формирование линейного списка. C++
C++ не находит файлы со списка путей к ним
Дублирование вхождения каждого элемента списка One и формирование из этих значений списка Double (пояснить условие) C++
C++ Формирование нового списка или из pascal -> с++
Формирование упорядоченного списка из целых чисел; удаление из списка отрицательные чисел и удвоение положительных C++
C++ Формирование списка
C++ Формирование и просмотр списка и функция, которая изменяет каждое значение информационной части элемента списка на его квадрат
формирование списка и функция C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
28.09.2012, 01:30     Формирование списка и работа с ним #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
// функция, которая возвращает количество элементов в очереди со значением info равным E
 int countOfE(node *list, int E) // в функцию передаётся указатель на начало очереди и значение E
 {
 node *iter = list; // указатель на начало очереди
 int count = 0; // счётчик
 while (iter != NULL) // перебор элементов очереди
 {
    if (iter->info == E) // если найден элемент со значением info равным E, то увеличиваем счётчик
        count++;
    iter = iter->next; // переход к следующему элементу
 }
 return count; // возвращаем количество найденных элементов
 }
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// создание очереди
if (head == NULL) // если очередь пустая
 { 
    head = new node; // первый элемент становится в голове очереди
    head->info = rand()%100 - 50; // присваиваем значение первому элементу
    head->next = NULL; // первый элемент указывает на NULL (значит он последний)
    tail = head; // хвост и голова очереди пока совпадают
 }
 for (int i = 2; i<=N; i++) // добавляем N - 1 элемент в очередь
 { 
    p = new node; // новый элемент 
    p->info = rand()%100 - 50; // присваиваем значение новому элементу
    tail->next = p; // предыдущий элемент будет указывать на новый элемент
    p->next = NULL; // новый элемент будет указывать на NULL (значит он последний)
    tail = p; // новый элемент в хвост очереди
 }
 // Вывод очереди на экран
 p = head; // p указывает на начало очереди
 for (int i = 1; i<=N; i++) // перебор N элементов очереди 
 { 
    cout << p->info << ' '; // вывод значения info элемента очереди
    p = p->next; // p указывет на следующий элемент очереди
 }
Yandex
Объявления
28.09.2012, 01:30     Формирование списка и работа с ним
Ответ Создать тему
Опции темы

Текущее время: 14:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru